var _m_url =  window.parent._index_path;
// ==========================================================================================
// 通用查询界面方法initSQuery("DATALIST;QUERYCLN",'${m.prefix}','${m.dzObjList}');
// ===================================initSQuery=======================================================
var currentRow;   // 双击选中的行
var totalCount=0;    // datagrid 的总行数
var currentRowNo=0;  // datagrid 的数

/******************************************************************
 * 	单录单 列表，多条件，常用查询条件三大界面初始化的接口
 ******************************************************************/
function initSQuery(divName,prefix){
	var dsId = $('#'+prefix+'_dsId').val();  // dsId1;dsId2
	var type = $('#'+prefix+'_type').val(); // 4 列表
	var jsUrl = $('#'+prefix+'_jsUrl').val();
	var doubFunc= $('#'+prefix+'_initFunc').val();   // 双击调用的方法
	var ainitFunc=$('#'+prefix+'_ainitFunc').val(); // 方法最终的回调函数
	var keyValue= $('#'+prefix+'_keyValue').val(); 
	var choice=$("#"+prefix+"_choice").val();  	//是否调用
	var aoru = $("#"+prefix+"_aoru").val(); 	//是添加或者修改详情面
	var pfks = eval("window.parent."+dsId+"_pk"); //主键
	var winitFunc = $('#'+prefix+'_winitFunc').val(); // 给添加或者详情界面回调的函数名称（在这个方法中不使用，传给_s_aws方法）
	var wainitFunc = $('#'+prefix+'_wainitFunc').val();
	var totalFlag = $('#'+prefix+'_totalFlag').val();
	var funcId=$(window.parent.document.getElementById(prefix+'_iframe')).attr("funcid");
	if(funcId==null||funcId==undefined||funcId==""){
		console.log($(window.parent.document.getElementById(prefix+'_iframe')));
	}
	//如果当前页面有自己个性化的js，那么加载该个性化的js
	addOnlyOwnJs(jsUrl);
	// 加载双击事件(双击是详情的修改的界面)
	$('#'+prefix+'_DATALIST').datagrid({
		//加载单击事件  (主要用于复制选中行赋值)
		onClickRow:function(rowIndex,rowData){
			currentIndex=rowIndex;
			currentRow=rowData;
		},
		onDblClickCell:function(rowIndex, field, value){
			$('#'+prefix+'_DATALIST').attr("colnname",field);
			$('#'+prefix+'_DATALIST').attr("realdsid",dsId);
			$('#'+prefix+'_DATALIST').attr("dsid",dsId);
			$('#'+prefix+'_DATALIST').attr("prefix",prefix);
			$('#'+prefix+'_DATALIST').attr("currentindex",rowIndex);
		},
		onDblClickRow:function(rowIndex,rowData){
			currentIndex=rowIndex;
			currentRow=rowData;
			// 主要用于的上一页和下一页
			currentPage=$('#'+prefix+'_DATALIST').datagrid('getPager').data("pagination").options.pageNumber; // 获取当前页
			totalCount=$('#'+prefix+'_DATALIST').datagrid('getPager').data("pagination").options.total;  // 获取datagrid
			pageSize=$('#'+prefix+'_DATALIST').datagrid('getPager').data("pagination").options.pageSize;  // 获取datagrid每页显示的条数
			totalPage=totalCount%pageSize==0?totalCount/pageSize:totalCount/pageSize+1;   // 获取datagrid的总的页数
			currentRowNo=parseInt(currentIndex+1)+(currentPage-1)*pageSize;   // 当前行在整个datagrid的行数
			var keyVaules = "";
			if(pfks!=undefined && pfks!=""){
				var tmpK = pfks.split(";");
				var pkVal = "";
				for(var i = 0; i < tmpK.length; i++ ){
					pkVal = rowData[tmpK[i]];
					keyVaules += tmpK[i]+"-"+rowData[tmpK[i]];
					if(i < tmpK.length - 1)keyVaules += ";";
				}
				//如果路径中存在这个双击方法，则调用个性写的双击方法
				if(doubFunc != "" ){
					var field=$('#'+prefix+'_DATALIST').attr("colnname");
					eval(doubFunc).call(this,rowData,field,prefix);
				}
				//如果没有个性的双击方法则调用通用的双击方法
				else{
					var staticWebUrl = "";
					_s_aws(prefix,dsId,dsId,'5',staticWebUrl,winitFunc,wainitFunc,'2',keyVaules);
				}	
			}
		}
	});
	// 要判断是调用还是直接访问
	$.ajax({
		type:'post',
		url:_m_url+'framework/loadRightList',
		data:{'funcId':funcId,'colId':dsId,'type':type},
		async:false,
		success:function(maps){
			var data=maps.list;  //返回不同界面上所有的列
			var canEditButns=maps.canEditButns;  //返回列表界面有权限,并且可以点击的按钮
			if(maps ==""){
				alert("您长时间未操作，系统已经自动退出!，请重新登陆");
			}else{
				// 1.主要加载是列表界面,和多条件查询界面,常用查询条件，并进行界面的拼接
				var typeT = new Array();
				typeT = type.split(";");
				divNameT = divName.split(";");
				for(var i = 0; i < typeT.length; i++){
					producePage(data[i],prefix+"_"+divNameT[i],typeT[i],'');
				}
				// 2.加载多条件查询界面和常用查询条件界面的默认值并填充
				var pDivNames=new Array();
				pDivNames[0]=prefix+"_"+divNameT[1];	// 多条件查询界面
				pDivNames[1]=prefix+"_"+divNameT[2];	// 常用查询条件页面
				loadDefaultData(pDivNames,dsId,"2","0");
				
				//初始化列表界面时候的权限的控制
				initListPageRight(dsId,prefix,'s',canEditButns,'');
				
				/**
				 * 1.通过我的工作台直接进入详情界面
				 * 2.通过超链接进入详情界面
				 */
				if(choice=='1'||choice=='0'){		
					// 调用_s_mws()
					var staticWebUrl='';
					var ainitFunc='';
					// 个性按钮未添加（如果添加则为dsId）
					// 目前butnId要占位置（目前没有数据）
					_s_aws(prefix,dsId,dsId,choice,staticWebUrl,winitFunc,wainitFunc,aoru,keyValue);
				}
			}
		}
	});
	//这是判断是否生成datagrid的footer，就如报表的统计行
	if(totalFlag == '0'){
		$('#'+prefix+'_DATALIST').datagrid({
			showFooter:false
		});
	}else if(totalFlag == '1'){
		$('#'+prefix+'_DATALIST').datagrid({
			showFooter:true
		});
	}
	//查询界面的回调函数
	if(ainitFunc != '')eval(ainitFunc).call(this,dsId,prefix,keyValue);
}

// 查询界面 除查询按钮其他按钮都隐藏
function queryButnHiden(dsId,prefix,keyValue){
	if(dsId == 'ds_yz_cl_instock4' ){  // 材料入库
		$('#'+prefix+"_queryButn a[id="+prefix+"_ADD_BUT]").hide(); 	// 添加按钮
		$('#'+prefix+"_queryButn a[id="+prefix+"_commCopy]").hide(); 	// 复制按钮
	}else{
		$('#'+prefix+"_queryButn a[id="+prefix+"_ADD_BUT]").hide(); 	// 添加按钮
		$('#'+prefix+"_queryButn a[id="+prefix+"_commCopy]").hide(); 	// 复制按钮
		$('#'+prefix+"_queryButn a[id="+prefix+"_RESET]").hide();		// 重置
		$('#'+prefix+"_queryButn a[id="+prefix+"_mb]").hide();  		//下拉的菜单
	}
}




/*************************************************
 * 报表初始化方法
 ***********************************************/
function initBQuery(divName,prefix){
	var dsId = $('#'+prefix+'_dsId').val();  // dsId1;dsId2
	var type = $('#'+prefix+'_type').val(); // 4 列表
	var jsUrl = $('#'+prefix+'_jsUrl').val();
	var ainitFunc= $('#'+prefix+'_ainitFunc').val(); // 方法最终的回调函数
	var totalFlag = $('#'+prefix+'_totalFlag').val();
	if(jsUrl !=''){
		var head = document.getElementsByTagName('head')[0];  
	    var script= document.createElement("script");  
	    script.type = "text/javascript";  
	    script.src=_m_url+jsUrl;  
	    head.appendChild(script);  
	}
	// 加载单击事件
	$('#'+prefix+'_DATALIST').datagrid({
		onClickRow:function(rowIndex,rowData){
			currentIndex=rowIndex;
			currentRow=rowData;
		}
	});
	// 要判断是调用还是直接访问
	$.ajax({
		type:'post',
		url:_m_url+'framework/loadColumnsU',
		data:{'colId':dsId,'type':type},
		success:function(data){
			if(data ==""){
				alert("您长时间未操作，系统已经自动退出!，请重新登陆");
			}else{
				var typeT = new Array();
				typeT = type.split(";");
				typeT[0]='88';
				divNameT = divName.split(";");
				for(var i = 0; i < typeT.length; i++){
					producePage(data[i],prefix+"_"+divNameT[i],typeT[i],'');
				}
				// 2.加载多条件查询界面和常用查询条件界面的默认值并填充
				var pDivNames=new Array();
				pDivNames[0]=prefix+"_"+divNameT[1];	// 多条件查询界面
				pDivNames[1]=prefix+"_"+divNameT[2];	// 常用查询条件页面
				loadDefaultData(pDivNames,dsId,"2","0");
			}
		}
	});
	// 判断是否要有footer
	if(totalFlag == '0'){
		$('#'+prefix+'_DATALIST').datagrid({
			showFooter:false
		});
	}else if(totalFlag == '1'){
		$('#'+prefix+'_DATALIST').datagrid({
			showFooter:true
		});
	}
	//查询界面的回调函数
	if(ainitFunc !='')eval(ainitFunc).call(this,dsId,prefix,keyValue)
}

//删除左右两端的空格  
function trim(str){ 
    return str.replace(/(^\s*)|(\s*$)/g, "");  
}
/*******************************************************************************
 * 查询按钮调用的方法
 ******************************************************************************/
function _f_bquery(obj){
	var prefix=$(obj).attr('pre');
	var dsId=$(obj).attr('dsid');
	var title = $(obj).attr('tit');
	var qConfigId = 'QUERYCLN';
	var showId = 'congfigVal';
	var tabId = 'costTabPanel';
	var resultDG = 'DATALIST';
	var comUseConf='commUse';
	_f_squery(prefix,qConfigId,comUseConf,dsId,showId,tabId,title,resultDG);
}

/***
 *  需要拼接的语句 显示条件的id 标签的id 标签的title 结果填充的Dg
 *  常用查询条件和更多条件的条件框在离开焦点的时候有条件的同步，所有只需要获取更多条件框中的查询条件
 */

function _f_squery(prefix,qConfigId,comUseConf,dsId,showId,tabId,title,resultDG){
	var configStr = parseConfig(prefix+"_"+trim(qConfigId)); 
	// 多条件查询的拼接
	var useConf ='';
	var allConfig=configStr+useConf;
	var configShow=prefix+'_'+showId;
	if($('#queryCB').attr('checked') == 'checked'){
		$('#queryCB').removeAttr('checked');
		$('#'+prefix+'_config').hide();
		$('#'+prefix+'_QueryList').show();
		$('#'+prefix+'_config').panel('close');
	}
	//查询的时候判断是否有数据权限
	$('#'+prefix+"_"+resultDG).datagrid({
		pageNumber:1,
		url:_m_url+'framework/loadDataQ',
		queryParams:{'dsId':dsId,'config':allConfig,"isTotal":"true"}
	});
	// parseConfigStr2 是用于提示精灵
	$('#'+configShow).html(parseConfigStr2(prefix+"_"+qConfigId));
}

/******************************************
 * 通用的多Tab报表的查询
 ******************************************/
function _mrt_query(obj){
	var prefix=$(obj).attr('pre');
	var dsId=$(obj).attr("dsid");
	var comUseConf='commUse';
}


/******************************************
 * 报表 查询按钮执行的方法（旧版本）
 ******************************************/
function _b_bquery(obj){
	var prefix=$(obj).attr('pre');
	var dsId=$(obj).attr('dsid');
	// 加载对照信息
	var title = $(obj).attr('tit');
	var qConfigId = 'QUERYCLN';
	var showId = 'congfigVal';
	var tabId = 'costTabPanel';
	var resultDG = 'DATALIST';
	var comUseConf='commUse';
	_b_squery(prefix,qConfigId,comUseConf,dsId,showId,tabId,title,resultDG);
}



// 需要拼接的语句 显示条件的id 标签的id 标签的title 结果填充的Dg
function _b_squery(prefix,qConfigId,comUseConf,dsId,showId,tabId,title,resultDG){
	var configStr = parseConfig(prefix+"_"+qConfigId);
	var useConf = parseConfig(prefix+"_"+comUseConf);
	var allConfig=configStr+useConf;
	var configShow=prefix+'_'+showId;
	$.ajax({
		type:'post',
		url:_m_url+'framework/loadDataQ',
		dataType:'json',
		data:{'dsId':dsId,'config':allConfig,'rows':'500'},
		success:function(data){
			$('#'+prefix+"_"+resultDG).datagrid('loadData',data);
		}
	});
	// parseConfigStr2 是用于提示精灵
	$('#'+configShow).html(parseConfigStr2(prefix+"_"+qConfigId));
}


/**
 * 添加按钮的方法
 * 
 * @param obj
 * @return
 */
function butnAdd(obj,pagetype){
	var flag=$(obj).attr('flag');
	var prefix=$(obj).attr('pre');
	var dsId=$(obj).attr('dsid');
	var moro = $(obj).attr('moro');
	if(pagetype=='2'){  //明细界面的添加按钮
		//判断单据是否是详情界面，看是否保存
		moro=$("input[id="+prefix+"_modelType]").val();
		if(flag==1){   //单录单
			var values=getFormJsons(prefix+"_A_AFORM");
			if(values!=0){
				$.messager.alert('提示','当前数据已经发生改变，请先保存后新增！！！');
				return;
			}
		}else if(flag==2){   //主明细
			var values=getFormJsons(prefix+"_addWinForm");    // 得到主表的数据
			var changes=$('#'+prefix+"_addItemDatagrid").datagrid('getChanges');   // 得到明细的数据
			if(values!=0||changes!=0){
				$.messager.alert('提示','当前数据已经发生改变，请先保存后新增！！！');
				return;
			}
		}
	}
	
	//判断如果是在详情界面添加的单据，那么判断该单据是否保存，如果没有保存
	$('#'+prefix+'_totalNum').css("visibility","hidden");
	var type='';
	var butnId='';
	var initFunc = pdInitFunc(dsId,prefix,'1');
	// 如果moro是2 则表示 是主明细的上下结构的界面
	if(moro == '2'){
		type='1;77'; 
		_t_aws(prefix,dsId,dsId,type,'',initFunc,'','','1');
	}else if (moro == '3'){
		type='5;33;33';
		_text_aws(prefix,dsId,dsId,type,'',initFunc,'','','1');
	}else{
		// 如果flag=1 则是单表界面 如果flag = 2 则是主明细界面 如果flag = 3 则是一对多的（暂时系统中不存在）
		if(flag=='1'){
			type='1';
			_s_aws(prefix,dsId,dsId,type,'',initFunc,'','1','');
		}else if(flag =='2'){
			type='1;77';// 4列表界面， 44 多选列表界面
			_m_aws(prefix,dsId,dsId,type,'',initFunc,'','','1');
		}else if(flag='3'){
			var items = $(obj).attr('items'); // 明细表的个数
			_o_mws(dsId,dsId,prefix,'','','','1',items);
		} 
	}
}


//给个性的功能写回调函数的方法
function pdInitFunc(dsId,prefix,flag){
	var dsIds= dsId.split(';');
	var initFunc="";
	if(dsIds[0]=='bj_xtlx'&&flag=='3'){
		initFunc="xt_byc";
	}
	else if(dsIds[0] == 'ds_bs_material1' && flag == '3'){
		initFunc='zhtFunc';
	}else{
		
		initFunc =$('#'+prefix+'_winitFunc').val();
	}
	return initFunc;
}

/**
 * 保存按钮的方法
 * 
 * @param obj
 * @return
 */
function butnSave(obj){
	var prefix=$(obj).attr('pre');
	var funStr=prefix+"_save";
	eval(funStr).call(this);
}


// 单录单打印
function _s_aws_print(prefix,dsId,keyValues,type){
	window.open(_m_url+"printPages/squeryPrint?dsId="+dsId+"&type="+type+"&jspWebUrl=/sysPrint/basicXQPrint&flag=2&keyValues="+keyValues+"&prefix"+prefix,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes, resizable=yes,location=no, status=yes') 
}

/**
 * 单录单界面的增、修改、详情 调用的通用方法 加载默认值 /framework/defaultData?dsId=bj_xtlx
 * flag：1：添加页面 2.详情界面 3.复制界面
 * sflag：s:代表是单录单 m：代表是主明细 o:代表是一对多
 */
function _s_aws(prefix,dsId,butnId,type,staticWebUrl,initFunc,ainitFunc,flag,keyValues){
	var width=document.documentElement.clientWidth;
	var height=document.documentElement.clientHeight;
	var allRows = $('#'+prefix+'_DATALIST').datagrid('getRows');
	var flagTo=0;
	var dsIds= new Array(); 
	dsIds=dsId.split(';');
	var pdivName =prefix+'_A_ADATAL';
	var divName = 'A_ADATAL'; 
	var verify = "";
	var formId=prefix+"_S_UBUTN";
	var obj = strToObj(keyValues);// 把keyValue放入其中，将其变为一个obj 点击按钮之后 关联过来的数据
	var funcId=$(window.parent.document.getElementById(prefix+'_iframe')).attr("funcid");
	if(funcId==null||funcId==undefined||funcId==""){
		console.log("#model.js 中的funcId获取有误，可能导致权限出问题，请及时修改");
	}
	
	//删除临时文件家中的缓存图片
	clearCacheImgs(dsId,'');
	console.log($('#'+prefix+'_A_save'));
	if($('#'+prefix+'_A_save').length>0){
		$("#"+prefix+"_A_AFORM").attr("flag",flag);
		$("#"+prefix+"_A_AFORM").attr("sflag","s");
		$("#"+prefix+"_A_AFORM").attr("pre",prefix);
		if(flag=='1'||flag=='3'){  // 添加和复制
			flagTo = 1;
			// 处理界面保存按钮
			$("#"+prefix+"_S_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','1');
			
			// 1.先清空数据该表单中所有的值,并初始化添加页面
			clearFormVal(pdivName);
			cEfect(pdivName,1);
			
			// 2.加载添加页面默认的数据(只有添加需要加载默认值，复制不需要)
			loadDefaultData(pdivName,dsId,"1","1");
			
			// 3.判断有没有要拉取的数据
			if(obj!=null){  
				fillInfoByXt(pdivName,obj);
				cEfect(pdivName,2);
				var temVal=keyValues.split("-");
				$.ajax({
					type:'post',
					async:false,
					url:_m_url+'framework/relationCol',
					data:{'colName':temVal[0],'dsId':dsId,'relationVal':temVal[1]},
					success:function(data){
						if(data.objList != null && data.objList !=""){
							fillInfoByXt(pdivName,data.objList[0]);
							cEfect(pdivName,2);	
						}
					}
				});
			}
			
			// 4.判断是不是复制
			if(flag=="3"){
				var pkName = parsePKStr(prefix+"_A_AFORM");
				var pkVal=currentRow[pkName];
				if(pkName==null||pkName==""||pkVal==null||pkVal==""){
					$.messager.alert('提示','主键名,和主键值没有获取到，请检查  #model.js 378');
				}
				var pkStr=pkName+"-"+pkVal;
				//加载双击行的具体数据
				$.ajax({
					type:'post',
					url:_m_url+'singlePages/sinfoData',
					async:false,
					data:{'dsId':dsId,'keyValues':pkStr},
					success:function(dateRow){
						fillCopyInfo(pdivName,dateRow.queryRow[0]);   // 填充数据
						cEfect(pdivName,2);	
					}
				});
			}
			$('#'+prefix+'_a_parentPanel').window('open');
			$('#'+prefix+'_imgDIv').hide();
			var data={};
			//回调函数的判断，并执行
			if(initFunc != "" && initFunc != 'null' && initFunc != null){
				eval(initFunc).call(this,data,dsId,prefix,keyValues);
			}
		}else if(flag=='2'){  // 双击 /修改
			$('#'+prefix+'_totalNum').css("visibility","visible");
//			$('#'+prefix+'_totalNum').show();
			$('#'+prefix+'_imageShow').show();
			
			// 处理界面保存按钮
			$("#"+prefix+"_S_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','2');
			
			// 界面其他处理
			$('#'+prefix+'_a_parentPanel').window('open');
			//加载双击行的数据
			$.ajax({
				type:'post',
				url:_m_url+'singlePages/sinfoData',
				async:false,
				data:{'dsId':dsId,'keyValues':keyValues},
				success:function(dateRow){
					verify = dateRow.queryRow[0].IS_VERIFY;
					destroy = dateRow.queryRow[0].IS_DESTROY;
					
					// 1.先清空数据该表单中所有的值，然后再填充数据
					clearFormVal(pdivName);
					fillInfo(pdivName,dateRow.queryRow[0]);
					cEfect(pdivName,2);
					
					// 4.加载状态图片(如审核，审批，作废)
					showDjImg(dateRow,prefix);
					if(initFunc != "" && initFunc != 'null' && initFunc != null){
						eval(initFunc).call(this,dateRow,dsId,prefix,keyValues);
					}
					
					$("#currentPage").html(parseInt(currentRowNo));
					$("#lastPage").html(parseInt(totalCount));
					if(flagTo == 0){
						if(ainitFunc != "" && ainitFunc != 'null' && ainitFunc != null){
							eval (ainitFunc).call(this,dateRow,dsId,prefix,keyValues);
						}
					}
				}
			});
		}
		// 定位光标
		$($('#'+pdivName).find('input[type!=hidden]')[0]).focus();
		// 回调方法   flagTo是判断是否数据已经加载完成，有的单据界面没有加载完成，就会回调方法，导致方法中的一些参数获取错误
		if(ainitFunc != "" && ainitFunc != 'null' && ainitFunc != null){
			if(flagTo == 1){
				eval (ainitFunc).call(this,data,dsId,prefix,keyValues);
			}
		}
		//初始化详情和添加页面的权限
		//如果是通过超链接点击进去的详情界面，那么所有的按钮隐藏，界面锁定
		if(type=='0'){
			$("#"+prefix+"_S_UBUTN").find("*[isbutn]").hide();   
			$("#"+prefix+"_S_UBUTN").find("a[code=rollBack]").hide();
			//锁定单据
			readOnlyForm(pdivName);
		}else{
			//初始化详情和添加页面的权限
			var isRColn=initAinfoPageRight(funcId,keyValues,dsId,prefix,flag,"s");
			analyColnDataRight(dsId,isRColn,{},"s",pdivName,"",{});
		}
		return;
	}
	var div_box = document.createElement("DIV");
	div_box.id = prefix+'_A_save';
	document.body.appendChild(div_box);
	$('#'+prefix+'_A_save').load(_m_url+'singlePages/squeryFun',// singlePages/sinfoFun'
			{'dsId':dsId,'butnId':butnId,'type':type,'staticWebUrl':staticWebUrl,'initFunc':initFunc,'jspWebUrl':'/model/single/asingle','flag':'2'},
			function(){
				// 处理界面
				$("#"+prefix+"_A_AFORM").attr("flag",flag);
				$("#"+prefix+"_A_AFORM").attr("sflag","s");
				$("#"+prefix+"_A_AFORM").attr("pre",prefix);
				$.parser.parse('#'+prefix+'_a_saddDiv');
				$('#'+prefix+'_a_parentPanel').window({  
					height:height,
					width:width,
					left:'0',
					top:'0',
					draggable:false,
					modal:true,
					resizable:false,
					closable:false,
					collapsible:false,
					maximizable:false,
					minimizable:false
				});  
				$('#'+prefix+'_a_parentPanel').window('open');
				$.ajax({
					type:'post',
					url:_m_url+'framework/loadColumnsU',
					data:{'colId':dsId,'type':type},
					async:false,
					success:function(data){
						if(data ==""){
							alert("您长时间未操作，系统已经自动退出!，请重新登陆");
						}else{
							var typeT = new Array();
							typeT = type.split(";");
							divNameT = divName.split(";");
							for(var i = 0; i < typeT.length; i++){
								producePage(data[i],prefix+"_"+divNameT[i],typeT[i],'');
							}
							if(flag=='1'||flag=='3'){  // 添加或者复制
								flagTo = 1;
								// 处理界面保存按钮
								$("#"+prefix+"_S_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','1');
								
								// 1.先清空数据该表单中所有的值,并初始化添加页面
								clearFormVal(pdivName);
								cEfect(pdivName,1);
								
								// 2.加载添加页面默认的数据(只有添加需要加载默认值，复制不需要)
								loadDefaultData(pdivName,dsId,"1","0");
								
								// 3.判断有没有要拉取的数据
								if(obj!=null){
									fillInfoByXt(pdivName,obj);
									cEfect(pdivName,2);
									var temVal=keyValues.split("-");
									$.ajax({
										type:'post',
										url:_m_url+'framework/relationCol',
										async:false,
										data:{'colName':temVal[0],'dsId':dsId,'relationVal':temVal[1]},
										success:function(data){
											if(data.objList != null && data.objList !=""){
												fillInfoByXt(pdivName,data.objList[0]);
												cEfect(pdivName,2);
											}
										}
									});
								}
								// 4.判断是否是复制
								if(flag=="3"){
									var pkName = parsePKStr(prefix+"_A_AFORM");
									var pkVal=currentRow[pkName];
									if(pkName==null||pkName==""||pkVal==null||pkVal==""){
										$.messager.alert('提示','主键名,和主键值没有获取到，请检查  #model.js 378');
									}
									var pkStr=pkName+"-"+pkVal;
									//加载双击行的数据
									$.ajax({
										type:'post',
										url:_m_url+'singlePages/sinfoData',
										async:false,
										data:{'dsId':dsId,'keyValues':pkStr},
										success:function(dateRow){
											fillCopyInfo(pdivName,dateRow.queryRow[0]);   // 填充数据
											cEfect(pdivName,2);	
										}
									});
								}
								$('#'+prefix+'_imgDIv').hide();
								//回调函数
								if(initFunc != "" && initFunc != 'null' && initFunc != null){
									eval(initFunc).call(this,data,dsId,prefix,keyValues);
								}
							}else if(flag =='2'){// 双击详情
//								$('#'+prefix+'_totalNum').show();
								$('#'+prefix+'_totalNum').css("visibility","visible");
								$('#'+prefix+'_imageShow').show();
								
								// 处理界面保存按钮
								$("#"+prefix+"_S_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','2');
								
								$.ajax({
									type:'post',
									url:_m_url+'singlePages/sinfoData',
									async:false,
									data:{'dsId':dsId,'keyValues':keyValues},
									success:function(dateRow){
										verify = dateRow.queryRow[0].IS_VERIFY;
										destroy = dateRow.queryRow[0].IS_DESTROY;
										
										// 1.先清空数据该表单中所有的值，详情页面的下拉框和数据
										clearFormVal(pdivName);
										loadDzData(pdivName);// 填充下拉框的数据
										fillInfo(pdivName,dateRow.queryRow[0]);
										cEfect(pdivName,2);
										
										// 4.加载状态图片(如审核，审批，作废)
										showDjImg(dateRow,prefix);
										$("#currentPage").html(parseInt(currentRowNo));
										$("#lastPage").html(parseInt(totalCount));
										if(initFunc != 'null' && initFunc !="" && initFunc != null){
											eval(initFunc).call(this,dateRow,dsId,prefix,keyValues);
										}
										if(flagTo == 0){
											if(ainitFunc != "" && ainitFunc != 'null' && ainitFunc!= null){
												eval(ainitFunc).call(this,dateRow,dsId,prefix,keyValues);
											}
										}
										
									}
								});
							}
						}
					}
				});
				//如果是通过超链接点击进去的详情界面，那么所有的按钮隐藏，界面锁定
				if(type=='0'){
					$("#"+prefix+"_S_UBUTN").find("*[isbutn]").hide();   
					$("#"+prefix+"_S_UBUTN").find("a[code=rollBack]").hide();
					//锁定单据
					readOnlyForm(pdivName);
				}else{
					//初始化详情和添加页面的权限
					var isRColn=initAinfoPageRight(funcId,keyValues,dsId,prefix,flag,"s");
					analyColnDataRight(dsId,isRColn,{},"s",pdivName,"",{});
				}
				
			});
	if(ainitFunc != "" && ainitFunc !='null' && ainitFunc!= null){
		if(flagTo == 1){
			eval(ainitFunc).call(this,data,dsId,prefix,keyValues);
		}
	}
}



/***
 * 清除临时文件夹中的缓存啊图片
 * 目前是双加的时候和保存成功之后调用
 * @param dsId
 * @param uid
 * @return
 */
function clearCacheImgs(dsId,name){
	$.ajax({
		type:'post',
		url:_m_url+'upload/delCacheImgs',
		data:{'dsId':dsId,'name':name},
		success:function(){
			console.log("删除缓存图片")
		}
	});
}




/***
 * 
 * @param dsId
 * @param isRColn   特殊的数据修改权限,或者列权限    T:默认情况下都是可以改的   F:任何情况下都是不可以改的   其他的：当前单据状态可以修改字段的权限
 * @param stateObj  状态标志位的对象
 * @param sflag	  	判断单据的类型
 * @param zDIv		主单据的id
 * @param mxDivs	明细单据的Id
 * @param otherObj   个性化的对象
 * @return
 */
function analyColnDataRight(dsId,isRColn,stateObj,sflag,zDIv,mxDivs,otherObj){
	if(isRColn==null||isRColn=="null"||isRColn==""){
		alert("存储过程 PK_RIGHT_FUNC.UP_GetDetailRIGHT 中的参数 VC_COLS 返回值错误，请修改");
		return;
	}
	/**
	 * isRColn不为空的时候 格式分四种  
	 * T			   :单据不锁定，当前用户具有权限
	 * F			   :单据锁定，当前用户没有权限
	 * T:coln1;coln2   :单据在没有锁定的情况下，哪些列是当前用户没有权限修改的
	 * F:coln1;coln2   :单据在锁定的情况下，哪些列是当前用户有权限修改的
	 */
	var isOwnFlag=isRColn.substr(0,1);
	 //不锁定单据
	if(isOwnFlag=='T'){  
		if(mxDivs!=""){
			var mxDgs=mxDivs.split(";")
			for(var i=0;i<mxDgs.length;i++){
				if(mxDgs[i]!=""&&mxDgs[i]!=null){
					deblockDg(mxDgs[i],"storehouseProd",'');
				}
			}
		}
		//得到当前用户没有权限修改的列，并进行列的锁定
		if(isRColn.trim().length>1){
			var colns=isRColn.substr(2);
			lockSpecificColns(zDIv,colns);
		}
	}
	//锁定单据
	else if(isOwnFlag=='F'){   
		readOnlyForm(zDIv);
		var mxDgs=mxDivs.split(";")
		for(var i=0;i<mxDgs.length;i++){
			if(mxDgs[i]!=""&&mxDgs[i]!=null){
				lockDg(mxDgs[i],"storehouseProd",'');
			}
		}
		//得到当前用有权限修改的列，并进行列的解锁
		if(isRColn.trim().length>1){
			var colns=isRColn.substr(2);
			unLockSpecificColns(zDIv,colns);
		}
	}else{
		alert("权限的 isRColn 获取有问题，请修改详情界面对应的过程");
	}
}




/**
 * 把字符串变成一个对象
 * @param str
 * @return
 */
function strToObj(str){
	var tem = new Array();
	var t1 = new Array();
	var o ={};
	if(str != 'undefined' && str != ''){
		tem = str.split(';');
		for ( var i = 0; i < tem.length; i++) {
			t1 = tem[i].split('-');
			o[t1[0]] = t1[1];
		}
		return o;
	}else{
		return null;
	}
}
/**
 * 显示图片的方法(单录单)
 * @param dateRow
 * @param prefix
 * @return 审批1:书稿三审状态位：S1_VERIFY S2_VERIFY S3_VERIFY 审批2: IS_VERIFY
 */
function showDjImg(dateRow,prefix){
	// 得到审批的状态
	verify=dateRow.queryRow[0].IS_VERIFY;
	// 得到作废的状态
	destroy=dateRow.queryRow[0].IS_DESTROY;
	// 审核通过时显示的图片
	// 得到上下文路径
	$("#"+prefix+"_imgDIv").css("display",'block');
	$("#showImg").css('display','none');
	$("#status").css('display','none');
	$("#rkImg").css('display','none');// 入库图片
	$("#rkstatus").css('display','none');
	// 注意如果数据库中的单据IS_VERIFY 的取值不为0,1，2，null，'',0时图片会显示一个空的图片
	if(destroy==1){
		$("#showImg").css('display','block');
		$("#showImg").attr({src:"../model/images/destory.png"});
		// 2.获取作废人和作废时间
		var destroyMan=dateRow.queryRow[0].DESTROY_MAN;
		var destroyDate=dateRow.queryRow[0].DESTROY_DATE;
		var formatfunc='dz_operatorsfmat';
		$("#status").css('display','block');
		$("#verDesMan").css('color','#E53333');
		$("#verDesMan").val(eval('window.parent.'+formatfunc).call(this,destroyMan));
		$("#verDesDate").css('color','#E53333');
		$("#verDesDate").val(window.parent.formatDate(destroyDate));
	}else{
		// 判断审批按钮是否存
		// 审批成功或者审批成功
		if(verify==1){ 
			// 1.获取审批的图片
			$("#showImg").css('display','block');
			if($("#"+prefix+"_APPROVE_BUT").length>0&&$("#"+prefix+"_APPROVE_BUT").css("display")!='none'){    	// 审批
				$("#showImg").attr({src:"../model/images/approvepass.png"});
			}else{							// 审核
				$("#showImg").attr({src:"../model/images/pass.png"});
			}
			// 2.获取审批人和审批时间
			var verifyMan=dateRow.queryRow[0].VERIFY_MAN;
			var verifyDate=dateRow.queryRow[0].VERIFY_DATE;
			var formatfunc='dz_operatorsfmat';
			$("#status").css('display','block');
			$("#verDesMan").css('color','#009900');
			$("#verDesMan").val(eval('window.parent.'+formatfunc).call(this,verifyMan));
			$("#verDesDate").css('color','#009900');
			$("#verDesDate").val(window.parent.formatDate(verifyDate));
			// 入库图片
			if((prefix == 'bba' ||  prefix == 'bbb') && (dateRow.queryRow[0].IS_STOCK == '1')){
				$("#rkImg").css('display','block');
				$("#rkImg").attr({src:"../model/images/instock.png"});
				
				$("#rkstatus").css('display','block');
				$("#rkMan").css('color','#009900');
				$("#rkDate").css('color','#009900');
				$("#rkMan").val(eval('window.parent.dz_operatorsfmat').call(this,dateRow.queryRow[0].STOCK_MAN));
				$("#rkDate").val(window.parent.formatDate(dateRow.queryRow[0].STOCK_DATE));
			}
			// 出库图片
			if((prefix == 'bbc'|| prefix == 'bbh') && (dateRow.queryRow[0].IS_STOCK == '1')){
				$("#rkImg").css('display','block');
				$("#rkImg").attr({src:"../model/images/outstock.png"});
				$("#rkstatus").css('display','block');
				$("#rkMan").css('color','#009900');
				$("#rkDate").css('color','#009900');
				$("#rkMan").val(eval('window.parent.dz_operatorsfmat').call(this,dateRow.queryRow[0].STOCK_MAN));
				$("#rkDate").val(window.parent.formatDate(dateRow.queryRow[0].STOCK_DATE));
			}
			//已付款
			if((prefix == 'bjjkd'|| prefix == 'bjfkd'|| prefix == 'fxhkd') && (dateRow.queryRow[0].IS_FK == '1')){
				$("#rkImg").css('display','block');
				$("#rkImg").attr({src:"../model/images/yifukuan.png"});
				$("#rkstatus").css('display','block');
				$("#rkMan").css('color','#009900');
				$("#rkDate").css('color','#009900');
				$("#rkMan").val(eval('window.parent.dz_operatorsfmat').call(this,dateRow.queryRow[0].FK_MAN));
				$("#rkDate").val(window.parent.formatDate(dateRow.queryRow[0].FK_DATE));
			}
			// 财务审核图片
			if(prefix == 'bao' && (dateRow.queryRow[0].IS_FIN_VERIFY == '1')){
				$("#rkImg").css('display','block');
				$("#rkImg").attr({src:"../model/images/finVerify.png"});
				
				$("#rkstatus").css('display','block');
				$("#rkMan").css('color','#009900');
				$("#rkDate").css('color','#009900');
				$("#rkMan").val(eval('window.parent.dz_operatorsfmat').call(this,dateRow.queryRow[0].FIN_VERIFY_MAN));
				$("#rkDate").val(window.parent.formatDate(dateRow.queryRow[0].FIN_VERIFY_DATE));
			}
		}else if(verify==2){ // 审批过程中
			$("#showImg").css('display','block');
			$("#showImg").attr({src:"../model/images/vering.png"});
		}else if(verify == null || verify=='null' || verify=='' ||verify== 0){     // 保存后尚未提交的单据
		}else{         // 等待审批，或者审批中的单据
			showApproveImg(verify);
		}
	}
	
}
/**
 * 显示图片的方法(主明细/一对多)
 * 
 * @param dateRow
 * @param prefix
 * @return
 */
function showDjImgMO(dateRow,prefix){
	verify=dateRow.queryRow[0][0].IS_VERIFY;
	// 得到作废的状态
	destroy=dateRow.queryRow[0][0].IS_DESTROY;
	// 审核通过时显示的图片
	// 得到上下文路径
	$("#"+prefix+"_imageShow").css("display",'block');
	$("#rkImg").css('display','none');// 入库图片
	$("#showImg").css('display','none');
	$("#status").css('display','none');
	$("#rkstatus").css('display','none');
	// 注意如果数据库中的单据IS_VERIFY 的取值不为0,1，2，null，'',0时图片会显示一个空的图片
	if(destroy==1){
		$("#showImg").css('display','block');
		$("#showImg").attr({src:"../model/images/destory.png"});
		// 2.获取作废人和作废时间
		var destroyMan=dateRow.queryRow[0][0].DESTROY_MAN;
		var destroyDate=dateRow.queryRow[0][0].DESTROY_DATE;
		var formatfunc='dz_operatorsfmat';
		$("#status").css('display','block');
		$("#verDesMan").css('color','#E53333');
		$("#verDesMan").val(eval('window.parent.'+formatfunc).call(this,destroyMan));
		$("#verDesDate").css('color','#E53333');
		$("#verDesDate").val(window.parent.formatDate(destroyDate));
	}else{
		// 审核/审批成功model/js/model.js
		if(verify==1){
			$("#showImg").css('display','block');
			if($("#"+prefix+"_APPROVE_BUT").length>0&&$("#"+prefix+"_APPROVE_BUT").css("display")!='none'){    	// 审批
				$("#showImg").attr({src:_m_url+"model/images/approvepass.png"});
			}else{							// 审核
				$("#showImg").attr({src:_m_url+"model/images/pass.png"});
                //$("#showImg").attr({src:"../model/images/pass.png"});
			}
			var verifyMan=dateRow.queryRow[0][0].VERIFY_MAN;
			var verifyDate=dateRow.queryRow[0][0].VERIFY_DATE;
			var formatfunc='dz_operatorsfmat';
			$("#status").css('display','block');
			$("#verDesMan").css('color','#009900');
			$("#verDesMan").val(eval('window.parent.'+formatfunc).call(this,verifyMan));
			$("#verDesDate").css('color','#009900');
			$("#verDesDate").val(window.parent.formatDate(verifyDate));
			// 入库图片(材料采购入库，进货单，销售退货，其他入库，订货合同材料入库)
			if((prefix == 'bba' || prefix =='cba' ||prefix =='cbc' || prefix =='cbn'||prefix=='fdh'||prefix=='zza') 
					&& (dateRow.queryRow[0][0].IS_STOCK == '1')){
				$("#rkImg").css('display','block');
				$("#rkImg").attr({src:"../model/images/instock.png"});
				
				$("#rkstatus").css('display','block');
				$("#rkMan").val(eval('window.parent.dz_operatorsfmat').call(this,dateRow.queryRow[0][0].STOCK_MAN));
				$("#rkDate").val(window.parent.formatDate(dateRow.queryRow[0][0].STOCK_DATE));
				$("#rkMan").css('color','#009900');
				$("#rkDate").css('color','#009900');
				$('#'+prefix+'_m_parentPanel a[code='+prefix+'_ruku]').linkbutton("disable");
				if(prefix =='cba' && (dateRow.queryRow[0][0].IS_FIN_VERIFY == '1') ){
					$('#'+prefix+'_m_parentPanel a[code='+prefix+'_chengFu]').linkbutton("disable"); 
				}
				if(prefix =='cbc' && (dateRow.queryRow[0][0].IS_FIN_VERIFY == '1')){
					$('#'+prefix+'_m_parentPanel a[code='+prefix+'_chengShou]').linkbutton("disable");
				}
			}
			// 出库图片（材料采购出库，材料领用出库，进货退货，销售单，其他出库,订货合同）
			if((prefix=='fdb'||prefix == 'bbc'|| prefix == 'bbh'||prefix =='cbb' || prefix =='cbd'|| prefix =='cbp'||prefix == 'qtc') && (dateRow.queryRow[0][0].IS_STOCK == '1')){
				$("#rkImg").css('display','block');
				$("#rkImg").attr({src:"../model/images/outstock.png"});
				
				$("#rkstatus").css('display','block');
				$("#rkMan").val(eval('window.parent.dz_operatorsfmat').call(this,dateRow.queryRow[0][0].STOCK_MAN));
				$("#rkDate").val(window.parent.formatDate(dateRow.queryRow[0][0].STOCK_DATE));
				$("#rkMan").css('color','#009900');
				$("#rkDate").css('color','#009900');
				$('#'+prefix+'_m_parentPanel a[code='+prefix+'_chuku ]').linkbutton("disable");
				if( prefix =='cbd' && (dateRow.queryRow[0][0].IS_FIN_VERIFY == '1') ){
					$('#'+prefix+'_m_parentPanel a[code='+prefix+'_chengShou]').linkbutton("disable");
				}
				if(prefix =='cbb' && (dateRow.queryRow[0][0].IS_FIN_VERIFY == '1') ){
					$('#'+prefix+'_m_parentPanel a[code='+prefix+'_chengFu]').linkbutton("disable"); 
				}
			}
			
			//已付款
			if((prefix == 'bjjkd') && (dateRow.queryRow[0][0].IS_FK == '1')){
				$("#rkImg").css('display','block');
				$("#rkImg").attr({src:"../model/images/yifukuan.png"});
				$("#rkstatus").css('display','block');
				$("#rkMan").css('color','#009900');
				$("#rkDate").css('color','#009900');
				$("#rkMan").val(eval('window.parent.dz_operatorsfmat').call(this,dateRow.queryRow[0][0].FK_MAN));
				$("#rkDate").val(window.parent.formatDate(dateRow.queryRow[0][0].FK_DATE));
			}
			
			//已收款
			if((prefix == 'fxhkd') && (dateRow.queryRow[0][0].IS_FK == '1')){
				$("#rkImg").css('display','block');
				$("#rkImg").attr({src:"../model/images/yishoukuan.png"});
				$("#rkstatus").css('display','block');
				$("#rkMan").css('color','#009900');
				$("#rkDate").css('color','#009900');
				$("#rkMan").val(eval('window.parent.dz_operatorsfmat').call(this,dateRow.queryRow[0][0].FK_MAN));
				$("#rkDate").val(window.parent.formatDate(dateRow.queryRow[0][0].FK_DATE));
			}
			
			if((prefix == 'bbf') && (dateRow.queryRow[0][0].IS_STOCK == '1')){
				$("#rkImg").css('display','block');
				$("#rkImg").attr({src:"../model/images/outstock.png"});
				
				$("#rkstatus").css('display','block');
				$("#rkMan").val(eval('window.parent.dz_operatorsfmat').call(this,dateRow.queryRow[0][0].VERIFY_MAN));
				$("#rkDate").val(window.parent.formatDate(dateRow.queryRow[0][0].VERIFY_DATE));
				$("#rkMan").css('color','#009900');
				$("#rkDate").css('color','#009900');
				$('#'+prefix+'_m_parentPanel a[code='+prefix+'_chuku ]').linkbutton("disable");
				if( prefix =='cbd' && (dateRow.queryRow[0][0].IS_FIN_VERIFY == '1') ){
					$('#'+prefix+'_m_parentPanel a[code='+prefix+'_chengShou]').linkbutton("disable");
				}
				if(prefix =='cbb' && (dateRow.queryRow[0][0].IS_FIN_VERIFY == '1') ){
					$('#'+prefix+'_m_parentPanel a[code='+prefix+'_chengFu]').linkbutton("disable"); 
				}
			}
			
			// 财务审核图片
			if((prefix == 'bao'||prefix == 'fdh') && (dateRow.queryRow[0][0].IS_FIN_VERIFY == '1')){
				$("#rkImg").css('display','block');
				$("#rkImg").attr({src:"../model/images/finVerify.png"});
				
				$("#rkstatus").css('display','block');
				$("#rkMan").val(eval('window.parent.dz_operatorsfmat').call(this,dateRow.queryRow[0][0].FIN_VERIFY_MAN));
				$("#rkDate").val(window.parent.formatDate(dateRow.queryRow[0][0].FIN_VERIFY_DATE));
				$("#rkMan").css('color','#009900');
				$("#rkDate").css('color','#009900');
			}
		}else if(verify==2){
			$("#showImg").css("display",'block');
			$("#showImg").attr({src:"../model/images/vering.png"});
		}
		else if(verify == null || verify=='null' || verify=='' ||verify== 0){     // 保存后尚未提交的单据
		}else{         // 等待审批，或者审批中的单据
			showApproveImg(verify);
		}
	}
}

// 审批的时候根据审批的结果，判断审批的状态，和单据的审批图片显示
function showApproveImg(verify){
	$("#showImg").css('display','block');
	if(verify== 'execState.010'){					// 等待一审
		$("#showImg").attr({src:"../model/images/wait-v1.png"});
	}else if(verify== 'execState.012'){				// 一审不通过
		$("#showImg").attr({src:"../model/images/wait-nv1.png"});
	}else if(verify== 'execState.014'){				// 一审被驳回
		$("#showImg").attr({src:"../model/images/wait-1bh.png"});
	}else if(verify== 'execState.020'){				// 等待二审
		$("#showImg").attr({src:"../model/images/wait-v2.png"});
	}else if(verify== 'execState.030'){				// 等待三审
		$("#showImg").attr({src:"../model/images/wait-v3.png"});
	}else if(verify== 'execState.040'){				// 等待四审
		$("#showImg").attr({src:"../model/images/wait-v4.png"});
	}else if(verify== 'execState.050'){				// 等待五审
		$("#showImg").attr({src:"../model/images/wait-v5.png"});
	}
}


/**
 * 主明细的 统一调用的方法 
 * flag 1.添加 2.修改详情 3.复制
 * 左右界面的主明细的结构
 */
function _m_aws(prefix,dsId,butnId,type,staticWebUrl,initFunc,ainitFunc,keyValues,flag){
	var width=document.documentElement.clientWidth;
	var height=document.documentElement.clientHeight;
	$('#'+prefix+'_totalItem').html('');  // 双击或添加时清空明细界面的合计的div
	var allRows = $('#'+prefix+'_DATALIST').datagrid('getRows');
	var flagTo =0;
	var dsIds = dsId.split(";");
	var pdivName =prefix+'_addWinTable';
	var dataGrid = $('#'+prefix+"_addItemDatagrid");
	var verify="";
	var formId = prefix+"_M_UBUTN";
	var obj = strToObj(keyValues);// 把keyValue放入其中，将其变为一个obj
	var gridName =  prefix + "_addItemDatagrid";
	$('#'+prefix+'_congfigValItem').html('');
	var keepDjMPInit="keepDjMPInitFunc";   //单据是否保留修改的权限
	var funcId=$(window.parent.document.getElementById(prefix+'_iframe')).attr("funcid");
	if(funcId==null||funcId==undefined||funcId==""){
		console.log("#model.js 中的funcId获取有误，可能导致权限出问题，请及时修改");
	}
	//删除临时文件家中的缓存图片
	clearCacheImgs(dsIds[0],'');
	if($('#'+prefix+'_M_save').length>0){
		$("#"+prefix+"_addWinForm").attr("flag",flag);
		$("#"+prefix+"_addWinForm").attr("sflag","m");
		$("#"+prefix+"_addWinForm").attr("pre",prefix);
		if(flag=='1'||flag=='3'){  // 添加
			// 处理界面保存按钮
			$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','1');
			// 1.先清空数据该表单中所有的值,并初始化添加页面
			clearFormVal(pdivName);
			flagTo = 1;
			cEfect(pdivName,1);  // 先把页面初始化添加页面
			// 2.加载添加页面默认的数据(只有添加需要加载默认值，复制不需要)
			loadDefaultData(pdivName,dsIds[0],"1","1");
			// 3.判断有没有拉取信息
			if(obj!=null){
				fillInfoByXt(pdivName,obj);
				cEfect(pdivName,2);
				var temVal=keyValues.split("-");
				$.ajax({
					type:'post',
					url:_m_url+'framework/relationCol',
					async:false,
					data:{'colName':temVal[0],'dsId':dsId,'relationVal':temVal[1]},
					success:function(data){
						if(data.objList != null && data.objList !=""){
							fillInfoByXt(pdivName,data.objList[0]);
							cEfect(pdivName,2);	
						}
					}
				});
			}
			// 4.判断是不是复制,复制填充值
			if(flag=='3'){ 
				var selRow = $('#'+prefix+"_DATALIST").datagird("getSelected");
				var pkName = parsePKStr(prefix+"_addWinForm");
				var pkVal=selRow[pkName];
				if(pkName==null||pkName==""||pkVal==null||pkVal==""){
					$.messager.alert('提示','主键名,和主键值没有获取到，请检查  #model.js 378');
				}
				var pkStr=pkName+"-"+pkVal;
				$.ajax({
					type:'post',
					url:_m_url+'singlePages/mDataMaD', // 复制的时候加载明细的数据
					data:{'dsId':dsId,'keyValues':pkStr,"aoru":flag},
					async:false,
					success:function(dateRow){
						// 1.填充主表的数据
						fillCopyInfo(pdivName,dateRow.queryRow[0][0]);   
						cEfect(pdivName,2);	
						// 2.填充明细的数据
						var d = {rows:dateRow.queryRow[1]};
						var nclms=dateRow.noCopyColnListMx;
						var rLen=d.rows.length;
						var nclmsLen=nclms.length;
						if(rLen>0){
							for(var i=0;i<rLen;i++){
								for(var j=0;j<nclmsLen;j++){
									var nocoln=nclms[j];
									d.rows[i][nocoln]="";
								}
							}
						}
						$('#'+prefix+'_addItemDatagrid').datagrid("loadData",d);
						$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('isCopy','1');
					}
				});
			}else{   //添加的时候明细清空
				$('#'+prefix+'_addItemDatagrid').datagrid('loadData',{total:0,rows:[]}); 
			}
			//明细的单据解锁
			deblockDg(gridName,"storehouseProd",'');
			//清空明细查询条件框中的值
			$('#'+prefix+'_MXInput').find("input").val("");
			$('#'+prefix+'_m_parentPanel').window('open');
			$('#'+prefix+'_imageShow').hide();
			if(initFunc != ""){
				var data={};
				eval(initFunc).call(this,data,dsId,prefix,keyValues);
			}
		}else if(flag=='2'){  // 详情 /修改
			$('#'+prefix+'_m_parentPanel').window('open');
			$('#'+prefix+'_totalNum').css("visibility","visible");
//			$('#'+prefix+'_totalNum').show();
			$('#'+prefix+'_imageShow').show();
			$('#'+prefix+'_addItemDatagrid').datagrid('loadData', { total: 0, rows: [] }); 
			
			// 处理界面保存按钮
			$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','2');
			
			$.ajax({
				type:'post',
				url:_m_url+'singlePages/mDataMaD',
				data:{'dsId':dsId,'keyValues':keyValues},
				async:false,
				success:function(dateRow){
					verify = dateRow.queryRow[0][0].IS_VERIFY;
					destroy = dateRow.queryRow[0][0].IS_DESTROY;
					// 1.先清空数据该表单中所有的值,并填充添加页面的数据
					clearFormVal(pdivName);
					fillInfo(pdivName,dateRow.queryRow[0][0]);
					cEfect(pdivName,2);
					
					//3.给明细datagrid赋值
					var d = {rows:dateRow.queryRow[1]};
					$('#'+prefix+'_addItemDatagrid').datagrid("loadData",d);
					
					//6.加载状态图片(如审核，审批，作废)
					showDjImgMO(dateRow,prefix);
					//清空明细查询条件框中的值
					$('#'+prefix+'_MXInput').find("input").val("");
					if(initFunc != ""){
						eval(initFunc).call(this,data,dsId,prefix,keyValues);
					}
					$("#currentPage").html(parseInt(currentRowNo));
					$("#lastPage").html(parseInt(totalCount));
					var jsparam = eval("window.parent."+dsIds[0]+"_cfxjs"); //加载计算参数
					if(jsparam!=undefined&&jsparam!=null&&jsparam!=""){
						//初始化明细计算的弹框
						initMxTotalCalcu(jsparam,prefix+'_addItemDatagrid');
					}
					if(flagTo==0){
						if(ainitFunc != ""){
							eval(ainitFunc).call(this,data,dsId,prefix);
						}
					}
				}
			});
		}
		//初始化详情和添加页面的权限
		var isRColn=initAinfoPageRight(funcId,keyValues,dsId,prefix,flag,"m");
		analyColnDataRight(dsId,isRColn,{},"m",pdivName,gridName,{});
		// 回调方法   flagTo是判断是否数据已经加载完成，有的单据界面没有加载完成，就会回调方法，导致方法中的一些参数获取错误
		if(ainitFunc != ""){
			if(flagTo == 1){
				eval(ainitFunc).call(this,data,dsId,prefix);
			}
		}
		//第一个input获取焦点
		selTabFocusInput_f();
		return;
	}
	var div_box = document.createElement("DIV");
	div_box.id = prefix+'_M_save';
	document.body.appendChild(div_box);
	$('#'+prefix+'_M_save').load(_m_url+'singlePages/mqueryFun',// singlePages/sinfoFun'
			{'dsId':dsId,'butnId':butnId,'type':type,'staticWebUrl':staticWebUrl,'initFunc':initFunc,'jspWebUrl':'/model/masterD/msave','flag':'2','keyValues':keyValues},
			function(){
				$("#"+prefix+"_addWinForm").attr("flag",flag);
				$("#"+prefix+"_addWinForm").attr("sflag","m");
				$("#"+prefix+"_addWinForm").attr("pre",prefix);
				$.parser.parse('#'+prefix+'_m_maddDiv');
				$('#'+prefix+'_m_parentPanel').window({  
					width:width,  
					height:height,  
					top:'0',
					left:'0',
					draggable:false,
					modal:true,
					resizable:false,
					closable:false,
					collapsible:false,
					maximizable:false,
					minimizable:false
				}); 
				
				$('#'+prefix+'_m_parentPanel').window('open');
				var divName = 'addWinTable;addItemDatagrid';
				//加载列
				$.ajax({
					type:'post',
					url:_m_url+'framework/loadMColumnsU',
					data:{'colId':dsId,'type':type},
					async:false,
					success:function(data){
						if(data ==""){
							alert("您长时间未操作，系统已经自动退出!，请重新登陆");
						}else{
							var typeT = new Array();
							typeT = type.split(";");
							divNameT = divName.split(";");
							var dsIds = dsId.split(';');
							var itemConfig = returnConfig(dsIds[1],prefix); // 明细界面config
							$('#'+prefix+'_MXInput').html(itemConfig);		// 明细界面的查询条件
							$('#'+prefix+'_MXInput').after(resetHtml(dsIds[1],prefix));// 明细界面的批量修改的功能
							$('#'+prefix+'itemButns').after(checkboxHtml(dsIds[1],prefix));// 明细界面
							
//							$('#'+prefix+'_MXInput').after(resetHtmlZC(dsIds[1],prefix));//纸厂明细界面的批量修改的功能
							
							
							for(var i = 0; i < typeT.length; i++){
								producePage(data[i],prefix+"_"+divNameT[i],typeT[i],'');
							}
							enaResDiv(prefix);// 多条件查询可点击
							//明细的单据解锁
							deblockDg(gridName,"storehouseProd",'');
							if(flag =='1'||flag=='3'){
								flagTo = 1;
								// 处理界面保存按钮
								$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','1');
								
								$('#'+prefix+'_imageShow').hide();
								// 1.先清空数据该表单中所有的值,并初始化添加页面
								clearFormVal(pdivName);
								cEfect(pdivName,1);
								
								// 2.加载添加页面默认的数据(只有添加需要加载默认值，复制不需要)
								loadDefaultData(pdivName,dsIds[0],"1","0");
								
								// 3.判断有没有要拉取的信息
								if(obj!=null){
									fillInfoByXt(pdivName,obj);
									cEfect(pdivName,2);
									var temVal=keyValues.split("-");
									$.ajax({
										type:'post',
										async:false,
										url:_m_url+'framework/relationCol',
										data:{'colName':temVal[0],'dsId':dsId,'relationVal':temVal[1]},
										success:function(data){
											if(data.objList != null && data.objList !=""){
												fillInfoByXt(pdivName,data.objList[0]);
												cEfect(pdivName,2);	
											}
										}
									});
								}
								// 4.判断是不是复制
								if(flag=='3'){
									var selRow = $('#'+prefix+"_DATALIST").datagrid('getSelected');
									var pkName = parsePKStr(prefix+"_addWinForm");
									var pkVal=selRow[pkName];
									if(pkName==null||pkName==""||pkVal==null||pkVal==""){
										$.messager.alert('提示','主键名,和主键值没有获取到，请检查  #model.js 378');
									}
									var pkStr=pkName+"-"+pkVal;
									$.ajax({
										type:'post',
										url:_m_url+'singlePages/mDataMaD', // 复制的时候加载明细的数据
										data:{'dsId':dsId,'keyValues':pkStr,"aoru":flag},
										async:false,
										success:function(dateRow){
											// 1.填充主表的数据
											fillCopyInfo(pdivName, dateRow.queryRow[0][0]);   
											cEfect(pdivName,2);	
											
											// 2.填充明细的数据
											var d = {rows:dateRow.queryRow[1]};
											var nclms=dateRow.noCopyColnListMx;
											var rLen=d.rows.length;
											var nclmsLen=nclms.length;
											if(rLen>0){
												for(var i=0;i<rLen;i++){
													for(var j=0;j<nclmsLen;j++){
														var nocoln=nclms[j];
														d.rows[i][nocoln]="";
													}
												}
											}
											$('#'+prefix+'_addItemDatagrid').datagrid("loadData", d);
											$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('isCopy','1');
										}
									});
								}
								if(initFunc != ""){
									eval(initFunc).call(this,data,dsId,prefix,keyValues);
								}
							}else if(flag =='2'){
								$('#'+prefix+'_totalNum').show();
								$('#'+prefix+'_totalNum').css("visibility","visible");
//								$('#'+prefix+'_imageShow').show();
								// 处理界面保存按钮
								$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','2');
								$.ajax({
									type:'post',
									url:_m_url+'singlePages/mDataMaD',
									data:{'dsId':dsId,'keyValues':keyValues},
									async:false,
									success:function(dateRow){
										verify = dateRow.queryRow[0][0].IS_VERIFY;
										destroy = dateRow.queryRow[0][0].IS_DESTROY;
										
										// 处理界面保存按钮
										$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','2');
										
										// 1.先清空数据该表单中所有的值,并初始化添加页面
										clearFormVal(pdivName);
										loadDzData(pdivName);// 加载下拉框并填充数据
										fillInfo(pdivName,dateRow.queryRow[0][0]);
										cEfect(pdivName,2);
										//3.给明细的datagrid赋值
										var d = {rows:dateRow.queryRow[1]};
										$('#'+prefix+'_addItemDatagrid').datagrid("loadData",d);
										
										//6.判断图片的显示
										showDjImgMO(dateRow,prefix);
										if(initFunc != ""){
											eval(initFunc).call(this,data,dsId,prefix,keyValues);
										}
										$("#currentPage").html(parseInt(currentRowNo));
										$("#lastPage").html(parseInt(totalCount));
										// 计算明细合计(目前主要是发行中的单子)
										var jsparam = eval("window.parent."+dsIds[0]+"_cfxjs"); //加载计算参数
										if(jsparam!=undefined&&jsparam!=null&&jsparam!=""){
											//初始化明细计算的弹框
											initMxTotalCalcu(jsparam,prefix+'_addItemDatagrid');
										}
										if(flagTo == 0){
											if(ainitFunc != ""){
												eval(ainitFunc).call(this,data,dsId,prefix);
											}
										}
									}
								});
								
							}
						}
					}
				});
				//初始化详情和添加页面的权限
				var isRColn=initAinfoPageRight(funcId,keyValues,dsId,prefix,flag,"m");
				analyColnDataRight(dsId,isRColn,{},"m",pdivName,gridName,{});
				//第一个input获取焦点
				selTabFocusInput_f();
			});
	if(ainitFunc != ""){
		if(flagTo == 1){
			eval(ainitFunc).call(this,data,dsId,prefix);
		}
	}
}


/***
 * 选中指定tab时，让当前tab界面下面的第一个input框获取焦点
 * @return
 */
function selTabFocusInput_f(param1,param2){
	$("div[class*=easyui-tabs]").tabs({
		onSelect:function(title){
			var selTab=$(this).tabs('getSelected');  
			$($(selTab).find("input[type!=hidden][type!=checkbox]")[0]).focus();
		}
	});
}




/**
 * 主明细在一个界面的模板 flag 是判断是什么窗口（添加，修改/详情）
 * 上下界面的主明细的结构
 */
function _t_aws(prefix,dsId,butnId,type,staticWebUrl,initFunc,ainitFunc,keyValues,flag){
	var cW=document.documentElement.clientWidth;
	var cH=document.documentElement.clientHeight<=600?"600":document.documentElement.clientHeight;
	$('#'+prefix+'_totalItem').html('');  // 双击或添加时清空明细界面的合计的div
	// flag 1.添加 2.修改详情 3.复制
	var allRows = $('#'+prefix+'_DATALIST').datagrid('getRows');
	var flagTo =0;
	var dsIds = dsId.split(";");
	var pdivName =prefix+'_addWinTable';
	var dataGrid = $('#'+prefix+"_addItemDatagrid");
	var verify="";
	var formId = prefix+"_M_UBUTN";
	var obj = strToObj(keyValues);                //把keyValue放入其中，将其变为一个obj
	var gridName = prefix + "_addItemDatagrid";
	$('#'+prefix+'_congfigValItem').html('');
	var funcId=$(window.parent.document.getElementById(prefix+'_iframe')).attr("funcid");
	if(funcId==null||funcId==undefined||funcId==""){
		console.log("#model.js 中的funcId获取有误，可能导致权限出问题，请及时修改");
	}
	if($('#'+prefix+'_M_save').length>0){
		$("#"+prefix+"_addWinForm").attr("flag",flag);
		$("#"+prefix+"_addWinForm").attr("sflag","m");
		$("#"+prefix+"_addWinForm").attr("pre",prefix);
		if(flag=='1'||flag=='3'){  // 添加
			// 处理界面保存按钮
			$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','1');
			
			// 1.先清空数据该表单中所有的值,并初始化添加页面
			clearFormVal(pdivName);
			flagTo = 1;
			cEfect(pdivName,1);  // 先把页面初始化添加页面
			
			// 2.加载添加页面默认的数据(只有添加需要加载默认值，复制不需要)
			loadDefaultData(pdivName,dsIds[0],"1","1");
			
			// 3.判断有没有拉取信息
			if(obj!=null){
				fillInfo(pdivName,obj);
				cEfect(pdivName,2);
				var temVal=keyValues.split("-");
				$.ajax({
					type:'post',
					url:_m_url+'framework/relationCol',
					async:false,
					data:{'colName':temVal[0],'dsId':dsId,'relationVal':temVal[1]},
					success:function(data){
						if(data.objList != null && data.objList !=""){
							fillInfoByXt(pdivName,data.objList[0]);
							cEfect(pdivName,2);	
						}
					}
				});
			}
			// 4.判断是不是复制
			if(flag=='3'){
				var selRow = $('#'+prefix+"_DATALIST").datagrid("getSelected");
				var pkName = parsePKStr(prefix+"_addWinForm");
				var pkVal=selRow[pkName];
				if(pkName==null||pkName==""||pkVal==null||pkVal==""){
					$.messager.alert('提示','主键名,和主键值没有获取到，请检查  #model.js 378');
				}
				var pkStr=pkName+"-"+pkVal;
				$.ajax({
					type:'post',
					url:_m_url+'singlePages/mDataMaD', // 复制的时候加载明细的数据
					data:{'dsId':dsId,'keyValues':pkStr,"aoru":flag},
					async:false,
					success:function(dateRow){
						// 1.填充主表的数据
						fillCopyInfo(pdivName, dateRow.queryRow[0][0]);   
						cEfect(pdivName,2);	
						// 2.填充明细的数据
						var d = {rows:dateRow.queryRow[1]};
						var nclms=dateRow.noCopyColnListMx;
						var rLen=d.rows.length;
						var nclmsLen=nclms.length;
						if(rLen>0){
							for(var i=0;i<rLen;i++){
								for(var j=0;j<nclmsLen;j++){
									var nocoln=nclms[j];
									d.rows[i][nocoln]="";
								}
							}
						}
						$('#'+prefix+'_addItemDatagrid').datagrid("loadData", d);
						$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('isCopy','1');
					}
				});
			}else{   // 添加的时候清空明细
				$('#'+prefix+'_addItemDatagrid').datagrid('loadData', { total: 0, rows: [], footer: [] });
			}
			var jsparam = eval("window.parent."+dsIds[0]+"_cfxjs"); //加载计算参数
			if(jsparam!=undefined&&jsparam!=null&&jsparam!=""){
				//初始化明细计算的弹框
				initMxTotalCalcu(jsparam,prefix+'_addItemDatagrid');
			}
			// 明细的单据解锁
			deblockDg(gridName,"storehouseProd",'');
			//清空明细查询条件框中的值
			$('#'+prefix+'_MXInput').find("input").val("");
			$('#'+prefix+'_m_parentPanel').window('open');
			$('#'+prefix+'_imageShow').hide();
			var data={};
			if(initFunc != ""){
				eval(initFunc).call(this,data,dsId,prefix,keyValues);
			}
		}else if(flag=='2'){  // 详情 /修改
			$('#'+prefix+'_m_parentPanel').window('open');
			$('#'+prefix+'_imageShow').show();
			$('#'+prefix+'_addItemDatagrid').datagrid('loadData', { total: 0, rows: [] }); 
			$.ajax({
				type:'post',
				url:_m_url+'singlePages/mDataMaD',
				data:{'dsId':dsId,'keyValues':keyValues},
				async:false,
				success:function(dateRow){
					verify = dateRow.queryRow[0][0].IS_VERIFY;
					destroy = dateRow.queryRow[0][0].IS_DESTROY;
					// 处理界面保存按钮
					$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','2');
					
					// 1.先清空数据该表单中所有的值,并填充添加页面的数据
					clearFormVal(pdivName);
					fillInfo(pdivName,dateRow.queryRow[0][0]);
					cEfect(pdivName,2);
					
					
					// 3.给明细datagrid赋值
					var d;
					if(dateRow.footer) {
						d = {rows:dateRow.queryRow[1], footer:dateRow.footer};
                    } else {
                        d = {rows:dateRow.queryRow[1]};
					}
					$('#'+prefix+'_addItemDatagrid').datagrid("loadData",d);
					
					// 6.加载状态图片(如审核，审批，作废)
					showDjImgMO(dateRow,prefix);
					//清空明细查询条件框中的值
					$('#'+prefix+'_MXInput').find("input").val("");
					var jsparam = eval("window.parent."+dsIds[0]+"_cfxjs"); //加载计算参数
					if(jsparam!=undefined&&jsparam!=null&&jsparam!=""){
						//初始化明细计算的弹框
						initMxTotalCalcu(jsparam,prefix+'_addItemDatagrid');
					}
					if(initFunc != ""){
						eval(initFunc).call(this,data,dsId,prefix,keyValues);
					}
					$("#currentPage").html(parseInt(currentRowNo));
					$("#lastPage").html(parseInt(totalCount));
					if(flagTo==0){
						if(ainitFunc != ""){
							eval(ainitFunc).call(this,data,dsId,prefix);
						}
					}
				}
			});
		}
		
		if(ainitFunc != ""){
			if(flagTo == 1){
				eval(ainitFunc).call(this,data,dsId,prefix);
			}
		}
		// 初始化详情和添加页面的权限
		var isRColn=initAinfoPageRight(funcId,keyValues,dsId,prefix,flag,"m");
		analyColnDataRight(dsId,isRColn,{},"m",pdivName,gridName,{});
		return;
	}
	var div_box = document.createElement("DIV");
	div_box.id = prefix+'_M_save';
	document.body.appendChild(div_box);
	$('#'+prefix+'_M_save').load(_m_url+'singlePages/mqueryFun',   // singlePages/sinfoFun'
			{'dsId':dsId,'butnId':butnId,'type':type,'staticWebUrl':staticWebUrl,'initFunc':initFunc,'jspWebUrl':'/model/masterT/tsave','flag':'2','keyValues':keyValues},
			function(){
				$("#"+prefix+"_addWinForm").attr("flag",flag);
				$("#"+prefix+"_addWinForm").attr("sflag","m");
				$("#"+prefix+"_addWinForm").attr("pre",prefix);
				$.parser.parse('#'+prefix+'_m_maddDiv');
				$('#'+prefix+'_m_parentPanel').window({  
					width:cW,  
					height:cH,  
					top:'0',
					left:'0',
					draggable:false,
					modal:true,
					resizable:false,
					closable:false,
					collapsible:false,
					maximizable:false,
					minimizable:false
				});
				$('#'+prefix+'_m_parentPanel').window('open');
				var divName = 'addWinTable;addItemDatagrid';
				$.ajax({
					type:'post',
					url:_m_url+'framework/loadMColumnsU',
					data:{'colId':dsId,'type':type},
					async:false,
					success:function(data){
						if(data ==""){
							alert("您长时间未操作，系统已经自动退出!，请重新登陆");
						}else{
							var typeT = new Array();
							typeT = type.split(";");
							divNameT = divName.split(";");
							var dsIds = dsId.split(';');
							var itemConfig = returnConfig(dsIds[1],prefix); // 明细界面config
							$('#'+prefix+'_MXInput').html(itemConfig);		// 明细界面的查询条件
							$("#" + prefix + "_MXInput input").removeAttr("disabled");
							for(var i = 0; i < typeT.length; i++){
								producePage(data[i],prefix+"_"+divNameT[i],typeT[i],'');
							}
							$('#'+prefix+'_MXInput').after(resetHtml(dsIds[1],prefix));// 明细界面
							$('#'+prefix+'_MXInput').after(checkboxHtml(dsIds[1],prefix));// 明细界面
							enaResDiv(prefix);// 多条件查询可点击
							var topH=$("div[id$=_m_top_parentPanel]").height(); 
							var zH=$("div[id$=_costPanel2_Z]").height();  
							var mxH=cH-topH-zH-80;
							$("div[id$='_costPanel2_MX']").css("height",mxH+"px")	
							var mxHdg=mxH-80;
							var mxWdg=cW-50;
							// 获取div的宽度和高度
							$("div[id$=_addItemDatagrid]").datagrid({
								height:mxHdg,
								width:mxWdg
							});
							// 明细的单据解锁
							deblockDg(gridName,"storehouseProd",'');
							if(flag =='1'||flag=='3'){
								// 处理界面保存按钮
								$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','1');
								flagTo = 1;
								$('#'+prefix+'_imageShow').hide();
								// 1.先清空数据该表单中所有的值,并初始化添加页面
								clearFormVal(pdivName);
								cEfect(pdivName,1);
								
								// 2.加载添加页面默认的数据(只有添加需要加载默认值，复制不需要)
								loadDefaultData(pdivName,dsIds[0],"1","0");
								
								// 3.判断有没有要拉取的信息
								if(obj!=null){
									fillInfo(pdivName,obj);
									cEfect(pdivName,2);
									var temVal=keyValues.split("-");
									$.ajax({
										type:'post',
										url:_m_url+'framework/relationCol',
										data:{'colName':temVal[0],'dsId':dsId,'relationVal':temVal[1]},
										success:function(data){
											if(data.objList != null && data.objList !=""){
												fillInfoByXt(pdivName,data.objList[0]);
												cEfect(pdivName,2);	
											}
										}
									});
								}
								// 4.判断是不是复制
								if(flag=='3'){
									var selRow = $('#'+prefix+"_DATALIST").datagrid("getSelected");
									var pkName = parsePKStr(prefix+"_addWinForm");
									var pkVal=selRow[pkName];
									if(pkName==null||pkName==""||pkVal==null||pkVal==""){
										$.messager.alert('提示','主键名,和主键值没有获取到，请检查  #model.js 378');
									}
									var pkStr=pkName+"-"+pkVal;
									$.ajax({
										type:'post',
										url:_m_url+'singlePages/mDataMaD', // 复制的时候加载明细的数据
										data:{'dsId':dsId,'keyValues':pkStr,"aoru":flag},
										async:false,
										success:function(dateRow){
											// 1.填充主表的数据
											fillCopyInfo(pdivName, dateRow.queryRow[0][0]);   
											cEfect(pdivName,2);	
											// 2.填充明细的数据
											var d = {rows:dateRow.queryRow[1]};
											var nclms=dateRow.noCopyColnListMx;
											var rLen=d.rows.length;
											var nclmsLen=nclms.length;
											if(rLen>0){
												for(var i=0;i<rLen;i++){
													for(var j=0;j<nclmsLen;j++){
														var nocoln=nclms[j];
														d.rows[i][nocoln]="";
													}
												}
											}
											$('#'+prefix+'_addItemDatagrid').datagrid("loadData", d);
											$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('isCopy','1');
										}
									});
								}
								var jsparam = eval("window.parent."+dsIds[0]+"_cfxjs"); //加载计算参数
								if(jsparam!=undefined&&jsparam!=null&&jsparam!=""){
									//初始化明细计算的弹框
									initMxTotalCalcu(jsparam,prefix+'_addItemDatagrid');
								}
								
								if(initFunc != ""){
									eval(initFunc).call(this,data,dsId,prefix,keyValues);
								}
							}else if(flag =='2'){
//								$('#'+prefix+'_totalNum').show();	
								$('#'+prefix+'_totalNum').css("visibility","visible");
								$('#'+prefix+'_imageShow').show();
							
								$.ajax({
									type:'post',
									url:_m_url+'singlePages/mDataMaD',
									data:{'dsId':dsId,'keyValues':keyValues},
									async:false,
									success:function(dateRow){
										// 处理界面保存按钮
										$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','2');
										
										verify = dateRow.queryRow[0][0].IS_VERIFY;
										destroy = dateRow.queryRow[0][0].IS_DESTROY;
										
										// 1.先清空数据该表单中所有的值,并初始化添加页面
										clearFormVal(pdivName);
										loadDzData(pdivName);// 加载下拉框并填充数据
										fillInfo(pdivName,dateRow.queryRow[0][0]);
										cEfect(pdivName,2);
										
										// 3.给明细的datagrid赋值
                                        var d;
                                        if(dateRow.footer) {
                                            d = {rows:dateRow.queryRow[1], footer:dateRow.footer};
                                        } else {
                                            d = {rows:dateRow.queryRow[1]};
                                        }
										$('#'+prefix+'_addItemDatagrid').datagrid("loadData", d);
										
										// 6.判断图片的显示
										showDjImgMO(dateRow,prefix);
										// 计算明细合计(目前主要是发行中的单子)
										var jsparam = eval("window.parent."+dsIds[0]+"_cfxjs"); //加载计算参数
										if(jsparam!=undefined&&jsparam!=null&&jsparam!=""){
											//初始化明细计算的弹框
											initMxTotalCalcu(jsparam,prefix+'_addItemDatagrid');
										}
										if(initFunc != ""){
											eval(initFunc).call(this,data,dsId,prefix,keyValues);
										}
										$("#currentPage").html(parseInt(currentRowNo));
										$("#lastPage").html(parseInt(totalCount));
										if(flagTo == 0){
											if(ainitFunc != ""){
												eval(ainitFunc).call(this,data,dsId,prefix);
											}
										}
									}
								});
							}
						}
					}
				});
				// 初始化详情和添加页面的权限
				var isRColn=initAinfoPageRight(funcId,keyValues,dsId,prefix,flag,"m");
				analyColnDataRight(dsId,isRColn,{},"m",pdivName,gridName,{});
			});
	if(ainitFunc != ""){
		if(flagTo == 1){
			eval(ainitFunc).call(this,data,dsId,prefix);
		}
	}
}
     

/**
 * 主明细在一个界面的模板 flag 是判断是什么窗口（添加，修改/详情）
 * 上下界面的主明细的结构
 */
function _text_aws(prefix,dsId,butnId,type,staticWebUrl,initFunc,ainitFunc,keyValues,flag){
	var cW=document.documentElement.clientWidth;
	var cH=document.documentElement.clientHeight<=600?"600":document.documentElement.clientHeight;
	$('#'+prefix+'_totalItem').html('');  // 双击或添加时清空明细界面的合计的div
	// flag 1.添加 2.修改详情 3.复制
	var allRows = $('#'+prefix+'_DATALIST').datagrid('getRows');
	var flagTo =0;
	var dsIds = dsId.split(";");
	var pdivName =prefix+'_addWinTable';
	var verify="";
	var formId = prefix+"_M_UBUTN";
	var obj = strToObj(keyValues);                //把keyValue放入其中，将其变为一个obj
	var gridName = prefix + "_addItemDatagrid";
	$('#'+prefix+'_congfigValItem').html('');
	var funcId=$(window.parent.document.getElementById(prefix+'_iframe')).attr("funcid");
	if(funcId==null||funcId==undefined||funcId==""){
		console.log("#model.js 中的funcId获取有误，可能导致权限出问题，请及时修改");
	}
	if($('#'+prefix+'_M_save').length>0){
		$("#"+prefix+"_addWinForm").attr("flag",flag);
		$("#"+prefix+"_addWinForm").attr("sflag","m");
		$("#"+prefix+"_addWinForm").attr("pre",prefix);
		if(flag=='1'||flag=='3'){  // 添加
			// 处理界面保存按钮
			$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','1');
			
			// 1.先清空数据该表单中所有的值,并初始化添加页面
			clearFormVal(pdivName);
			flagTo = 1;
			cEfect(pdivName,1);  // 先把页面初始化添加页面
			
			// 2.加载添加页面默认的数据(只有添加需要加载默认值，复制不需要)
			loadDefaultData(pdivName,dsIds[0],"1","1");
			
			// 3.判断有没有拉取信息
			if(obj!=null){
				fillInfo(pdivName,obj);
				cEfect(pdivName,2);
				var temVal=keyValues.split("-");
				$.ajax({
					type:'post',
					url:_m_url+'framework/relationCol',
					async:false,
					data:{'colName':temVal[0],'dsId':dsId,'relationVal':temVal[1]},
					success:function(data){
						if(data.objList != null && data.objList !=""){
							fillInfoByXt(pdivName,data.objList[0]);
							cEfect(pdivName,2);	
						}
					}
				});
			}
			// 4.判断是不是复制
			if(flag=='3'){
				var selRow = $('#'+prefix+"_DATALIST").datagrid("getSelected");
				var pkName = parsePKStr(prefix+"_addWinForm");
				var pkVal=selRow[pkName];
				if(pkName==null||pkName==""||pkVal==null||pkVal==""){
					$.messager.alert('提示','主键名,和主键值没有获取到，请检查  #model.js 378');
				}
				var pkStr=pkName+"-"+pkVal;
				$.ajax({
					type:'post',
					url:_m_url+'singlePages/mDataMaD', // 复制的时候加载明细的数据
					data:{'dsId':dsId,'keyValues':pkStr,"aoru":flag},
					async:false,
					success:function(dateRow){
						// 1.填充主表的数据
						fillCopyInfo(pdivName, dateRow.queryRow[0][0]);   
						cEfect(pdivName,2);	
						// 2.填充明细的数据
						var d = {rows:dateRow.queryRow[1]};
						var nclms=dateRow.noCopyColnListMx;
						var rLen=d.rows.length;
						var nclmsLen=nclms.length;
						if(rLen>0){
							for(var i=0;i<rLen;i++){
								for(var j=0;j<nclmsLen;j++){
									var nocoln=nclms[j];
									d.rows[i][nocoln]="";
								}
							}
						}
						$('#'+prefix+'_addItemDatagrid').datagrid("loadData", d);
						$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('isCopy','1');
					}
				});
			}else{   // 添加的时候清空明细
				$('#'+prefix+'_addItemDatagrid').datagrid('loadData', { total: 0, rows: [] }); 
			}
			var jsparam = eval("window.parent."+dsIds[0]+"_cfxjs"); //加载计算参数
			if(jsparam!=undefined&&jsparam!=null&&jsparam!=""){
				//初始化明细计算的弹框
				initMxTotalCalcu(jsparam,prefix+'_addItemDatagrid');
			}
			// 明细的单据解锁
			deblockDg(gridName,"storehouseProd",'');
			//清空明细查询条件框中的值
			$('#'+prefix+'_MXInput').find("input").val("");
			$('#'+prefix+'_m_parentPanel').window('open');
			$('#'+prefix+'_imageShow').hide();
			var data={};
			if(initFunc != ""){
				eval(initFunc).call(this,data,dsId,prefix,keyValues);
			}
		}else if(flag=='2'){  // 详情 /修改
			$('#'+prefix+'_m_parentPanel').window('open');
			$('#'+prefix+'_imageShow').show();
			$('#'+prefix+'_addItemDatagrid').datagrid('loadData', { total: 0, rows: [] }); 
			$.ajax({
				type:'post',
				url:_m_url+'singlePages/mDataMaD',
				data:{'dsId':dsId,'keyValues':keyValues},
				async:false,
				success:function(dateRow){
					verify = dateRow.queryRow[0][0].IS_VERIFY;
					destroy = dateRow.queryRow[0][0].IS_DESTROY;
					// 处理界面保存按钮
					$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','2');
					
					// 1.先清空数据该表单中所有的值,并填充添加页面的数据
					clearFormVal(pdivName);
					fillInfo(pdivName,dateRow.queryRow[0][0]);
					cEfect(pdivName,2);
					
					
					// 3.给明细datagrid赋值
					var d = {rows:dateRow.queryRow[1]};
					$('#'+prefix+'_addItemDatagrid').datagrid("loadData",d);
					
					// 6.加载状态图片(如审核，审批，作废)
					showDjImgMO(dateRow,prefix);
					//清空明细查询条件框中的值
					$('#'+prefix+'_MXInput').find("input").val("");
					var jsparam = eval("window.parent."+dsIds[0]+"_cfxjs"); //加载计算参数
					if(jsparam!=undefined&&jsparam!=null&&jsparam!=""){
						//初始化明细计算的弹框
						initMxTotalCalcu(jsparam,prefix+'_addItemDatagrid');
					}
					if(initFunc != ""){
						eval(initFunc).call(this,data,dsId,prefix,keyValues);
					}
					$("#currentPage").html(parseInt(currentRowNo));
					$("#lastPage").html(parseInt(totalCount));
					if(flagTo==0){
						if(ainitFunc != ""){
							eval(ainitFunc).call(this,data,dsId,prefix);
						}
					}
				}
			});
		}
		
		if(ainitFunc != ""){
			if(flagTo == 1){
				eval(ainitFunc).call(this,data,dsId,prefix);
			}
		}
		// 初始化详情和添加页面的权限
		var isRColn=initAinfoPageRight(funcId,keyValues,dsId,prefix,flag,"m");
		analyColnDataRight(dsId,isRColn,{},"m",pdivName,gridName,{});
		return;
	}
	
	var div_box = document.createElement("DIV");
	div_box.id = prefix+'_M_save';
	document.body.appendChild(div_box);
	$('#'+prefix+'_M_save').load(_m_url+'singlePages/mqueryFun',   // singlePages/sinfoFun'
			{'dsId':dsId,'butnId':butnId,'type':type,'staticWebUrl':staticWebUrl,'initFunc':initFunc,'jspWebUrl':'/model/bxf/bxf','flag':'2','keyValues':keyValues},
			function(){
				$("#"+prefix+"_addWinForm").attr("flag",flag);
				$("#"+prefix+"_addWinForm").attr("sflag","m");
				$("#"+prefix+"_addWinForm").attr("pre",prefix);
				
				$.parser.parse('#'+prefix+'_m_maddDiv');
				$('#'+prefix+'_m_parentPanel').window({  
					width:cW,  
					height:cH,  
					top:'0',
					left:'0',
					draggable:false,
					modal:true,
					resizable:false,
					closable:false,
					collapsible:false,
					maximizable:false,
					minimizable:false
				});
				$('#'+prefix+'_m_parentPanel').window('open');
				var divName = 'addWinTable;one;two';
				$.ajax({
					type:'post',
					url:_m_url+'framework/loadMColumnsU',
					data:{'colId':dsId,'type':type},
					async:false,
					success:function(data){
						if(data ==""){
							alert("您长时间未操作，系统已经自动退出!，请重新登陆");
						}else{
							var typeT = new Array();
							typeT = type.split(";");
							divNameT = divName.split(";");
							var dsIds = dsId.split(';');
							
							var itemConfig = returnConfig(dsIds[1],prefix); // 明细界面config
							$('#'+prefix+'_MXInput').html(itemConfig);		// 明细界面的查询条件
							$("#" + prefix + "_MXInput input").removeAttr("disabled");
							for(var i = 0; i < typeT.length; i++){
								producePage(data[i],prefix+"_"+divNameT[i],typeT[i],'');
							}
							$('#'+prefix+'_MXInput').after(resetHtml(dsIds[1],prefix));// 明细界面
							$('#'+prefix+'_MXInput').after(checkboxHtml(dsIds[1],prefix));// 明细界面
							enaResDiv(prefix);// 多条件查询可点击
							var topH=$("div[id$=_m_top_parentPanel]").height(); 
							var zH=$("div[id$=_costPanel2_Z]").height();  
							var mxH=cH-topH-zH-80;
							$("div[id$='_costPanel2_MX']").css("height",mxH+"px")	
							var mxHdg=mxH-80;
							var mxWdg=cW-50;
							// 获取div的宽度和高度
							$("div[id$=_addItemDatagrid]").datagrid({
								height:mxHdg,
								width:mxWdg
							});
							// 明细的单据解锁
							deblockDg(gridName,"storehouseProd",'');
							if(flag =='1'||flag=='3'){
								// 处理界面保存按钮
								$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','1');
								flagTo = 1;
								$('#'+prefix+'_imageShow').hide();
								// 1.先清空数据该表单中所有的值,并初始化添加页面
								clearFormVal(pdivName);
								cEfect(pdivName,1);
								
								// 2.加载添加页面默认的数据(只有添加需要加载默认值，复制不需要)
								loadDefaultData(pdivName,dsIds[0],"1","0");
								
								// 3.判断有没有要拉取的信息
								if(obj!=null){
									fillInfo(pdivName,obj);
									cEfect(pdivName,2);
									var temVal=keyValues.split("-");
									$.ajax({
										type:'post',
										url:_m_url+'framework/relationCol',
										data:{'colName':temVal[0],'dsId':dsId,'relationVal':temVal[1]},
										success:function(data){
											if(data.objList != null && data.objList !=""){
												fillInfoByXt(pdivName,data.objList[0]);
												cEfect(pdivName,2);	
											}
										}
									});
								}
								// 4.判断是不是复制
								if(flag=='3'){
									var selRow = $('#'+prefix+"_DATALIST").datagrid("getSelected");
									var pkName = parsePKStr(prefix+"_addWinForm");
									var pkVal=selRow[pkName];
									if(pkName==null||pkName==""||pkVal==null||pkVal==""){
										$.messager.alert('提示','主键名,和主键值没有获取到，请检查  #model.js 378');
									}
									var pkStr=pkName+"-"+pkVal;
									$.ajax({
										type:'post',
										url:_m_url+'singlePages/mDataMaD', // 复制的时候加载明细的数据
										data:{'dsId':dsId,'keyValues':pkStr,"aoru":flag},
										async:false,
										success:function(dateRow){
											// 1.填充主表的数据
											fillCopyInfo(pdivName, dateRow.queryRow[0][0]);   
											cEfect(pdivName,2);	
											// 2.填充明细的数据
											var d = {rows:dateRow.queryRow[1]};
											var nclms=dateRow.noCopyColnListMx;
											var rLen=d.rows.length;
											var nclmsLen=nclms.length;
											if(rLen>0){
												for(var i=0;i<rLen;i++){
													for(var j=0;j<nclmsLen;j++){
														var nocoln=nclms[j];
														d.rows[i][nocoln]="";
													}
												}
											}
											$('#'+prefix+'_addItemDatagrid').datagrid("loadData", d);
											$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('isCopy','1');
										}
									});
								}
								var jsparam = eval("window.parent."+dsIds[0]+"_cfxjs"); //加载计算参数
								if(jsparam!=undefined&&jsparam!=null&&jsparam!=""){
									//初始化明细计算的弹框
									initMxTotalCalcu(jsparam,prefix+'_addItemDatagrid');
								}
								
								if(initFunc != ""){
									eval(initFunc).call(this,data,dsId,prefix,keyValues);
								}
							}else if(flag =='2'){
//								$('#'+prefix+'_totalNum').show();	
								$('#'+prefix+'_totalNum').css("visibility","visible");
								$('#'+prefix+'_imageShow').show();
							
								$.ajax({
									type:'post',
									url:_m_url+'singlePages/mDataMaD',
									data:{'dsId':dsId,'keyValues':keyValues},
									async:false,
									success:function(dateRow){
										// 处理界面保存按钮
										$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','2');
										
										verify = dateRow.queryRow[0][0].IS_VERIFY;
										destroy = dateRow.queryRow[0][0].IS_DESTROY;
										
										// 1.先清空数据该表单中所有的值,并初始化添加页面
										clearFormVal(pdivName);
										loadDzData(pdivName);// 加载下拉框并填充数据
										fillInfo(pdivName,dateRow.queryRow[0][0]);
										cEfect(pdivName,2);
										
										// 3.给明细的datagrid赋值
										var d = {rows:dateRow.queryRow[1]};
										$('#'+prefix+'_addItemDatagrid').datagrid("loadData", d);
										
										// 6.判断图片的显示
										showDjImgMO(dateRow,prefix);
										// 计算明细合计(目前主要是发行中的单子)
										var jsparam = eval("window.parent."+dsIds[0]+"_cfxjs"); //加载计算参数
										if(jsparam!=undefined&&jsparam!=null&&jsparam!=""){
											//初始化明细计算的弹框
											initMxTotalCalcu(jsparam,prefix+'_addItemDatagrid');
										}
										if(initFunc != ""){
											eval(initFunc).call(this,data,dsId,prefix,keyValues);
										}
										$("#currentPage").html(parseInt(currentRowNo));
										$("#lastPage").html(parseInt(totalCount));
										if(flagTo == 0){
											if(ainitFunc != ""){
												eval(ainitFunc).call(this,data,dsId,prefix);
											}
										}
									}
								});
							}
						}
					}
				});
				// 初始化详情和添加页面的权限
				var isRColn=initAinfoPageRight(funcId,keyValues,dsId,prefix,flag,"m");
				analyColnDataRight(dsId,isRColn,{},"m",pdivName,gridName,{});
			});
	if(ainitFunc != ""){
		if(flagTo == 1){
			eval(ainitFunc).call(this,data,dsId,prefix);
		}
	}
}

/*******************************************************************************
 * 锁定datagrid 不可编辑
 * @return
 ******************************************************************************/
function lockDg(dgName,clickEvent,otherEvent){
	$("#"+dgName).datagrid({
		onClickRow:function(rowIndex,rowData){
			$("#"+dgName).datagrid("cancelEdit",rowIndex);
			$("#"+dgName).attr("currentIndex",rowIndex);
			eval(clickEvent).call(this,dgName,rowData);
		},
		onSelect:function(rowIndex,rowData){
			$("#"+dgName).datagrid("cancelEdit",rowIndex);
		},
		onDblClickCell:function(rowIndex,rowData){
			$("#"+dgName).datagrid("cancelEdit",rowIndex);
		}
	});
}


/*******************************************************************************
 * 解锁datagrid ，使其可编辑
 * @return
 ******************************************************************************/
function deblockDg(dgName,clickEvent,otherEvent){
	$("#"+dgName).datagrid({
		onClickRow:function(rowIndex,rowData){
			$("#"+dgName).datagrid('beginEdit', rowIndex);
			var colnname=$("#"+dgName).attr("colnname");
			eval(clickEvent).call(this,dgName,rowData);
			var esObjs=$("#"+dgName).datagrid("getEditors",rowIndex);
			if(colnname==null){   
				if(esObjs.length>0){
					for(var i=0;i<esObjs.length;i++){
						if(esObjs[i].type=='numberbox'){
							$(esObjs[i].target[0]).parent("td").find("#editablebox").focus();
							break;
						}
					}
				}
			}else{
				if(esObjs.length>0){
					for(var i=0;i<esObjs.length;i++){
						if(esObjs[i].field==colnname){
							$(esObjs[i].target[0]).parent("td").find("#editablebox").focus();
							break;
						}
					}
				}
			}
		}
	});
}


/*********************************************
 *判断特定单据审核和审批完成之后当断当前登陆是否具有修改的权限    0：没有 1：有
 * @param data
 * @param dsId
 * @param prefix
 * @param keyValues
 * @return
 ***********************************************/
function keepDjMPInitFunc(data,dsId,prefix,keyValues){
	var djId=keyValues.split("-")[1];
	var isMp="0";
	$.ajax({
		type:'post',
		url:_m_url+'printExplain/keepModifyPrems',
		data:{'dsId':dsId,'djId':djId},
		async:false,
		success:function(data){
			isMp=data;
		}
	});
	return isMp;
}




/***
 * 双击判断某业务单据是否具有修改权限 ,如果设置了，那么判断当前登录人是否具有权限
 * 0：本单据的节点设置了权限，但是当前登录人没有该权限       1:本节点没有设置权限 或者本节点设置了权限，当前登录人也具备修改的权限
 * @param prefix
 * @param djId
 * @param dsId
 * @param formId
 * @param param
 * @param flag 
 */
function dbcModifyDataPerms(prefix,djId,dsId,formId,flag,verifyStatu,param){
	var isMFlag='0';
	$.ajax({
		type:'post',
		url:_m_url+'framework/dbcModifyDataPerms',
		data:{'djId':djId,'dsId':dsId,"param":param},
		async:false,
		success:function(isModify){
			isMFlag=isModify;
			if(isModify=="0"){ //没有修改权限
				//判断单子的锁定(非一审被驳回,非待审批，已作废的时候锁定单据)
				if((verifyStatu!=null&&verifyStatu!=0&&verifyStatu!=""&&verifyStatu!='execState.014'&&verifyStatu!='execState.012')||verifyStatu =='1'){
				}else{
					readOnlyForm(formId);
				}
				//主表中的按钮，和明细中除了返回按钮全部灰化
				//作废按钮灰化
				$("#"+prefix+"_S_UBUTN a[code="+prefix+"_DESTORY_BUT]").linkbutton("disable");
				$("#"+prefix+"_M_UBUTN a[code="+prefix+"_DESTORY_BUT]").linkbutton("disable");
				//明细中的所有按钮灰化
				$("#" + prefix + "_itemButns a").linkbutton("disable"); 
			}else{
				//主表中的按钮和明细总的按钮全部可用
				$("#"+prefix+"_S_UBUTN a[code="+prefix+"_DESTORY_BUT]").linkbutton("enable");
				$("#"+prefix+"_M_UBUTN a[code="+prefix+"_DESTORY_BUT]").linkbutton("enable");
				$("#" + prefix + "_itemButns a").linkbutton("enable");
			}
		}
	});
	return isMFlag;
}


/*********************************************
 * 判断某业务单据特定的列只能由特定的权限组修改审核和审批完成之后当断当前登陆是否具有修改的权限    0：没有 1：有
 * @param data
 * @param dsId
 * @param prefix
 * @param keyValues
 * @return
 ***********************************************/
function dbcModifyColnPerms(prefix,djId,dsId,formId,isMFlag,param){
	var colnPerms="";
	$.ajax({
		type:'post',
		url:_m_url+'framework/dbcModifyColnPerms',
		data:{'djId':djId,'dsId':dsId,"param":param},
		async:false,
		success:function(data){
			colnPerms=data;
			//首先判断单据是否锁定
			//1.如果锁定了，那么判断当前用户是否具有特殊列的修改权限
			var ownpermsColns=colnPerms.ownpermsColns;    //返回有权限修改的列
			var nonePermsColns=colnPerms.nonePermsColns;	//返回没有权限修改的列
			var beforeVMcolns=colnPerms.beforeVMcolns;	//返回审批之前有权限修改的列
			var keepMColns=colnPerms.keepMColns;     //返回始终有权限修改的列
			//1.未提交状态，并且该用户没有修改权限
			if (isMFlag=="0"){   
				if(ownpermsColns!=null&&ownpermsColns!=""){
					var colns=ownpermsColns.split(';');
					for(var i=0;i<colns.length;i++){
						if(colns[i]!=null&&colns[i].trim()!=""){
							var colnObj=$("#"+formId).find("*[qucln="+colns[i].trim()+"]");
							if($(colnObj).parent().children('input[so=true]').length> 0){
								$(colnObj).parent().children('input[so=true]').remove();
							}
							$(colnObj).css("display","block");
						}
					}
					//保存按钮生效
					$("a[code="+prefix+"_SAVE_BUT]").linkbutton("enable");
				}
			}
			//2.已提交状态，但是并未完全审批通过，判断该用户时候拥有特殊列的修改的权限
			if(isMFlag=="2"){ 	
				if(beforeVMcolns!=null&&beforeVMcolns!=""){
					var colns=beforeVMcolns.split(';');
					for(var i=0;i<colns.length;i++){
						if(colns[i]!=null&&colns[i].trim()!=""){
							var colnObj=$("#"+formId).find("*[qucln="+colns[i].trim()+"]");
							if($(colnObj).parent().children('input[so=true]').length> 0){
								$(colnObj).parent().children('input[so=true]').remove();
							}
							$(colnObj).css("display","block");
						}
					}
					//保存按钮生效
					$("a[code="+prefix+"_SAVE_BUT]").linkbutton("enable");
				}
			}
			//3.始终保持修改权限的列
			if(isMFlag=="3"){ 	
				if(keepMColns!=null&&keepMColns!=""){
					unLockSpecificColns(formId,keepMColns);
					//保存按钮生效
					$("a[code="+prefix+"_SAVE_BUT]").linkbutton("enable");
				}
			}
			//3.如果单据未锁定了，那么判断当前用户是否具有特殊列没有修改权限
			else{
				if(nonePermsColns!=null&&nonePermsColns!=""){
					var colns=nonePermsColns.split(';');
					for(var i=0;i<colns.length;i++){
						if(colns[i]!=null&&colns[i].trim()!=""){
							var colnObj=$("#"+formId).find("*[qucln="+colns[i].trim()+"]");
							if($(colnObj).parent().children('input[so=true]').length == 0){
								$(colnObj).after("<input class=\"ainit-input\" so=\"true\" readonly=\"true\" style=\"width:"+$(colnObj).css('width')+";height:"+$(colnObj).css('height')+";background-color:#eeeeee;\"/>");
							}
							$(colnObj).parent().children('input[so=true]').css("display","block");
							$(colnObj).parent().children('input[so=true]').val($(colnObj).val());
							$(colnObj).css("display","none");
						}
					}
				}
			}
		}
	});
	return colnPerms;
}



//添加主明细中明细界面的的默认值
function loadItemDefaultVal(dsId,addQrFlag){
	var itemData="";
	$.ajax({
		url:_m_url+'framework/defaultData',
		data:{'dsId':dsId,'addQrFlag':addQrFlag},   
		type:'post',
		async:false,
		success:function(dataRow){
			if(dataRow.length==0){
				itemData={};
			}else{
				itemData=dataRow[0];
			}
		},
		error : function() { // 请求失败后要执行的代码
			$.messager.alert("java后台报错提示","加载默认值的出现错误联系开发","info");
		}
	});
	return itemData;
}

// 一对多的方法（暂时无用）
function _o_mws(dsId,butnId,prefix,staticWebUrl,initFunc,keyValues,flag,items){   // 以后完善审核之后明细的解锁(一对多拉取信息应该调用fillInfoByXt
	var allRows = $('#'+prefix+'_DATALIST').datagrid('getRows');
	var dsIds = dsId.split(';');
	var verify="";
	var obj = strToObj(keyValues);// 把keyValue放入其中，将其变为一个obj
	var formId = prefix+"_M_UBUTN";
	if($('#'+prefix+'_O_modify').length>0){
		if(flag=='1'){
			$('#'+prefix+'_o_mparentPanel').window('open');
			$('#'+prefix+'_imageShow').hide();
			// 处理界面保存按钮
			if($("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").length > 0){
				$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','1');
			}
			// 清空主表
			var mdivName=prefix+"_maddPETb";
			cEfect(mdivName,1);
			// 如果obj 为空 则加载默认数据
			if(obj!=null){
				fillInfo(pdivName,obj);
			}else{
				// 加载默认值
				loadDefaultData(pdivName,dsIds[0],"1","1");
			}
			for ( var i = 0; i <items; i++) {
				var panelId=prefix+"_mPanelAdd"+i;
				$('#'+panelId).datagrid('loadData', { total: 0, rows: [] }); 
			}
		}else if(flag=='2'){
			$('#'+prefix+'_o_mparentPanel').window('open');
//			$('#'+prefix+'_totalNum').show();
			$('#'+prefix+'_totalNum').css("visibility","visible");
			$('#'+prefix+'_imageShow').show();
			// 处理界面保存按钮
			if($("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").length > 0){
				$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','2');
			}
			var mdivName=prefix+"_maddPETb";
			cEfect(mdivName,1);
			for ( var i = 0; i < items; i++) {
				var panelId=prefix+"_mPanelAdd"+i;
				$("#"+panelId+" #"+prefix+"_MCLN_FORM_0").removeAttr('saY');
			}
			$.ajax({
				type:'post',
				url:_m_url+'singlePages/oDataRow',
				data:{'dsId':dsId,'keyValues':keyValues},
				success:function(dateRow){
					verify = dateRow.queryRow[0][0].IS_VERIFY;
					// 填充主表信息
					fillInfo(mdivName,dateRow.queryRow[0][0]);
					cEfect(mdivName,2);
					if(verify=='1' || verify == '2'){
						readOnlyForm(mdivName);
					}
					for ( var i = 0; i < items; i++) {
						for ( var j = 0; j < dateRow.queryRow[i+1].length; j++) {
							var d = {rows:dateRow.queryRow[i+1]};
							$('#'+prefix+"_mPanelAdd"+i).datagrid("loadData", d);
						}
						if(dateRow.queryRow[0][0].IS_VERIFY == '1'){
							readOnlyForm(prefix+"_mPanelAdd"+i);
						}
					}
					$("#currentPage").html(parseInt(currentRowNo));
					$("#lastPage").html(parseInt(totalCount));
					showDjImgMO(dateRow,prefix);
				
					
				}
			});
		}
		return;
	}
	var div_box = document.createElement("DIV");
	div_box.id = prefix+'_O_modify';
	div_box.height = 100;
	document.body.appendChild(div_box);
	$('#'+prefix+'_O_modify').load(_m_url+'singlePages/oqueryFun',// singlePages/sinfoFun'
			{'dsId':dsId,'butnId':butnId,'staticWebUrl':staticWebUrl,'initFunc':initFunc,'jspWebUrl':'/model/onetoM/omodify',flag:'2','items':items},
			function(){
				$.parser.parse('#'+prefix+'_o_maddDiv');
				$('#'+prefix+'_o_mparentPanel').window({  
					width:document.documentElement.clientWidth+13,  
					height:document.documentElement.clientHeight+15,  
					top:'0',
					left:'0',
					draggable:false,
					modal:true,
					resizable:false,
					closable:true,
					maximizable:false,
					minimizable:false
				});  
				$('#'+prefix+'_o_mparentPanel').window('open');
				// 加载字段
				$.ajax({
					type:'post',
					url:_m_url+'framework/loadOColumnsU',
					data:{'colId':dsId,'items':items},
					success:function(columns){
						if(columns ==""){
							alert("您长时间未操作，系统已经自动退出!，请重新登陆");
						}else{
							var mdivName=prefix+"_maddPETb";
							// 主明细全部拼接好
							// 1.加载主表
							producePage(columns[0],mdivName,'5','');
							// 2,加载明细表
							for ( var i = 0; i <items; i++) {
								var divitems=prefix+"_mPanelAdd"+i;
								producePage(columns[i+1],divitems,'4','');
							}
							// 全部下拉框都加载好////////////////////////////////////////////////////////////////////
							if(flag=='1'){
								// 处理界面保存按钮
								if($("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").length > 0){
									$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','1');
								}
								$('#'+prefix+'_imageShow').hide();
								// 添加界面】
								// 初始化4个添加界面
								cEfect(mdivName,1);
								// 如果obj 为空 则加载默认数据
								if(obj!=null){
									fillInfo(mdivName,obj);
								}else{
									// 加载对照信息
									$.ajax({
										url:_m_url+'framework/defaultData',
										data:{'dsId':dsIds[0],'addQrFlag':'1'},
										type:'post',
										success:function(data){
											fillInfo(pdivName,data[0]);
											cEfect(pdivName,1);
										}
									});
									// 加载默认值
									loadDefaultData(pdivName,dsIds[0],"1","0");
								}
							}else if(flag=='2'){
//								$('#'+prefix+'_totalNum').show();
								$('#'+prefix+'_totalNum').css("visibility","visible");
								$('#'+prefix+'_imageShow').show();
								// 处理界面保存按钮
								if($("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").length > 0){
									$("#"+prefix+"_M_UBUTN a[code="+prefix+"_SAVE_BUT]").attr('sou','2');
								}
								// 修改界面
								// 加载数据，加载下拉框，填充数据，初始化界面
								$.ajax({
									type:'post',
									url:_m_url+'singlePages/oDataRow',
									data:{'dsId':dsId,'keyValues':keyValues},
									success:function(dateRow){
										verify = dateRow.queryRow[0][0].IS_VERIFY;
										fillInfo(mdivName,dateRow.queryRow[0][0]);
										cEfect(mdivName,2);
										if(verify=='1' || verify == '2'){
											readOnlyForm(mdivName);
										}
										for ( var i = 0; i < items; i++) {
											for ( var j = 0; j < dateRow.queryRow[i+1].length; j++) {
												var d = {rows:dateRow.queryRow[i+1]};
												$('#'+prefix+"_mPanelAdd"+i).datagrid("loadData", d);
											}
											if(dateRow.queryRow[0][0].IS_VERIFY == '1'){
												readOnlyForm(prefix+"_mPanelAdd"+i);
											}
										}
										$("#currentPage").html(parseInt(currentRowNo));
										$("#lastPage").html(parseInt(totalCount));
										showDjImgMO(dateRow,prefix);
									}
								});
								
							}
						}
					}
				});
			}
	);
}
/**
 * 单录单_单表通用保存方法
 * 
 * @param url
 *            保存方法请求的路径
 * @param formId
 *            提交form的Id
 * @param cbfn
 *            可能使用的回调函数方法名称
 * @return
 */
function _s_ss_b(prefix,type,saveUrl,cbfn,flag){
	var formId = 'A_AFORM';
	_s_ss(prefix,type,saveUrl,formId,cbfn);
}

/**
 * 单录单_单表通用保存方法
 * 
 * @param url
 *            保存方法请求的路径
 * @param formId
 *            提交form的Id
 * @param cbfn
 *            可能使用的回调函数方法名称
 * @return
 */
function _s_ss(prefix,type,saveUrl,formId,cbfn){
	if(checkRequire(prefix+"_"+formId)=='Success'){
		var singleObj = getFormJson(prefix+"_"+formId);
		$.ajax({
			type:'post',
			url:_m_url+saveUrl,
			contentType: "application/json;charset=utf-8",
			data:JSON.stringify(singleObj),
			dataType: "json",
			success:function(data){
			if(cbfn != ''){
				eval(cbfn).call(this,data,prefix,type,formId);
			}
		}
		});
	} 
}


// 通用ReturnObj 返回提示信息
function returnAlert(data){
	if(data.msg == 'success'){
		$.messager.alert('提示','保存成功');
	}else if(data.msg == 'upsuccess'){
		$.messager.alert('提示','更新成功');
	}else if(data.msg == 'fail'){
		$.messager.alert('提示','操作失败','info');
	}else{
		$.messager.alert('错误提示',data.msg,'error');
	}
}

/************************************
 * 初始化界面的时候添加自己个性化的js文件
 ************************************/
function addOnlyOwnJs(jsUrl){
	var jsUrlS = jsUrl.split(";");
	for ( var i = 0; i < jsUrlS.length; i++) {
		var head = document.getElementsByTagName('head')[0];  
	    var script= document.createElement("script");  
	    script.type = "text/javascript";  
	    script.src=_m_url+jsUrlS[i];  
	    head.appendChild(script); 
	}
}

/*******************************************************************************
 * 主明细界面初始化的接口
 ******************************************************************************/
function initMQuery(divName,prefix,pfks,dzList,moro){
	var dsId = $('#'+prefix+'_dsId').val();  // dsId1;dsId2
	var dsIds = dsId.split(";");
	var type = $('#'+prefix+'_type').val(); // 4 列表
	var jsUrl = $('#'+prefix+'_jsUrl').val();  //当前单据自己个性化的js文件 
	var initFunc= $('#'+prefix+'_initFunc').val();  // 双击事件（个性）
	var ainitFunc= $('#'+prefix+'_ainitFunc').val();  // 本方法的回调函数
	var keyValue= $('#'+prefix+'_keyValue').val(); 
	var choice=$("#"+prefix+"_choice").val();  
	var aoru = $("#"+prefix+"_aoru").val();
	var winitFunc = $('#'+prefix+'_winitFunc').val(); // 给添加或者详情界面回调的函数名称（在这个方法中不使用，传给_s_aws方法）
	var wainitFunc = $('#'+prefix+'_wainitFunc').val();
	var totalFlag = $('#'+prefix+'_totalFlag').val();
	var funcId=$(window.parent.document.getElementById(prefix+'_iframe')).attr("funcid");
	if(funcId==null||funcId==undefined||funcId==""){
		console.log("#model.js 中的funcId获取有误，可能导致权限出问题，请及时修改");
	}
	//添加自己个性化的js文件
	addOnlyOwnJs(jsUrl);
	// 加载单击事件
	$('#'+prefix+'_DATALIST').datagrid({
		onClickRow:function(rowIndex,rowData){
			currentIndex=rowIndex;
			currentRow=rowData;
		}
	});
	
	// 加载双击事件
	$('#'+prefix+'_DATALIST').datagrid({
		onDblClickRow:function(rowIndex,rowData){
		currentIndex=rowIndex;
		currentRow=rowData;
		// 主要用于的上一页和下一页
		currentPage=$('#'+prefix+'_DATALIST').datagrid('getPager').data("pagination").options.pageNumber; // 获取当前页
		totalCount=$('#'+prefix+'_DATALIST').datagrid('getPager').data("pagination").options.total;  // 获取datagrid
																										// 的总的行数
		pageSize=$('#'+prefix+'_DATALIST').datagrid('getPager').data("pagination").options.pageSize;  // 获取datagrid每页显示的条数
		totalPage=totalCount%pageSize==0?totalCount/pageSize:totalCount/pageSize+1;   // 获取datagrid的总的页数
		currentRowNo=parseInt(currentIndex+1)+(currentPage-1)*pageSize;   // 当前行在整个datagrid的行数
		var keyVaules = "";
		var tmpK = pfks;
		keyVaules += tmpK+"-"+rowData[tmpK];
		if($('#'+prefix+'_initFunc').val() != ""){  // 判断如我的任务的双击事件
			eval($('#'+prefix+'_initFunc').val()).call(this,prefix,dsId,rowData,winitFunc,wainitFunc,keyVaules);
		}else{
			if(moro =='0'){  // 0： 如果是主明细则调用_m_aws方法
				var staticWebUrl = "";
				var initFunc = '';
				var ainitFunc='';
				_m_aws(prefix,dsId,dsId,'5;77',staticWebUrl,winitFunc,wainitFunc,keyVaules,'2');
			}else if(moro == '1'){ // 1: 如果是一对多则调用_o_mws方法
				var staticWebUrl = "";
				var initFunc = '';
				var ainitFunc='';
				var itemsS= $("#"+prefix+"_items").val();
				_o_mws(dsId,dsId,prefix,staticWebUrl,initFunc,keyVaules,'2',itemsS);
			}else if(moro == '2'){
				_t_aws(prefix,dsId,dsId,'5;77',staticWebUrl,winitFunc,wainitFunc,keyVaules,'2');
			}else{
				alert("model.js 中 moro参数获取错误，点击事件不生效,请尽快修改");
			}
		}
	}
	});
	$.ajax({
		type:'post',
		url:_m_url+'framework/loadRightList',
		data:{'funcId':funcId,'colId':dsIds[0],'type':type},
		async:false,
		success:function(maps){
			var data=maps.list;  					//返回不同界面上所有的列
			var canEditButns=maps.canEditButns;  	//返回列表界面有权限的按钮，没有权限的按钮需要灰掉的按钮
			if(data ==""){
				alert("您长时间未操作，系统已经自动退出!，请重新登陆");
			}else{
				var typeT = new Array();
				typeT = type.split(";");
				divNameT = divName.split(";");
				// 1.加载列标配界面和多条件查询界面
				for(var i = 0; i < typeT.length; i++){
					producePage(data[i],prefix+"_"+divNameT[i],typeT[i],'');
				}
				// 2.加载多条件查询界面和常用查询界面的默认值并填充
				var pDivNames=new Array();
				pDivNames[0]=prefix+"_"+divNameT[1];	// 多条件查询界面
				pDivNames[1]=prefix+"_"+divNameT[2];	// 常用查询条件页面
				loadDefaultData(pDivNames,dsIds[0],"2","0");
				
				//初始化列表界面时候的权限的控制
				initListPageRight(dsId,prefix,'m',canEditButns,'');
				
				/**
				 * 1.通过我的工作台直接进入详情界面
				 * 2.通过超链接进入详情界面
				 */
				if(choice=='1'||choice=='0'){
					var staticWebUrl='';
					var initFunc='';
					var ainitFunc='';
					if(moro =='0'){  // 0： 如果是主明细则调用_m_aws方法
						_m_aws(prefix,dsId,dsId,'5;77',staticWebUrl,winitFunc,wainitFunc,keyValue,aoru);
					}else if(moro == '1'){ // 1: 如果是一对多则调用_o_mws方法
						var items= $("#"+prefix+"_items").val();
						_o_mws(dsId,dsId,prefix,staticWebUrl,initFunc,keyValue,aoru,items);
					}else if(moro == '2'){
						_t_aws(prefix,dsId,dsId,'5;77',staticWebUrl,winitFunc,wainitFunc,keyValue,aoru);
					}else if(moro ='3'){//成本核算单特殊情况
						_c_aws(prefix,dsId,dsId.split(';')[0],'5;77',staticWebUrl,winitFunc,wainitFunc,keyValue,'2');
					}
				}
			}
			
		}
	});
	if(totalFlag == '0'){
		$('#'+prefix+'_DATALIST').datagrid({
			showFooter:false
		});
	}else if(totalFlag == '1'){
		$('#'+prefix+'_DATALIST').datagrid({
			showFooter:true
		});
	}
	if(ainitFunc != '')eval(ainitFunc).call(this,dsId,type,prefix);
}
// 查询界面要隐藏的按钮
function quHideButnM(dsId,type,prefix){
	var dsIds = dsId.split(';')[0];
	if(dsIds == 'ds_fx_clients_jslist1'){  // 对账结算单
		$('#'+prefix+"_queryButnM a[id="+prefix+"_commCopy]").hide(); // 复制按钮
	}else if(dsIds == 'ds_fx_clients_hkplan1'){
		$('#'+prefix+"_queryButnM a[id="+prefix+"_ADD_BUT]").hide(); // 添加按钮
	}else if(dsIds == 'ds_fx_clients_hkplan1'){ // 回款计划
		$('#'+prefix+"_queryButnM a[id="+prefix+"_commCopy]").hide(); // 复制按钮
	}
}
// ==========================================================================================
// 数据挖掘列表界面 general
// ==========================================================================================
// initFunc 如果为空 则为双击事件，不为空，则自定义方法 / ainitFunc 全文初始化之后的方法
function _gen_qw(prefix,dsId,butnId,type,staticWebUrl,initFunc,ainitFunc,keyValues){
	if(keyValues == null || keyValues == 'null' || keyValues == ''){
		$.messager.alert('提示窗口','没有传入的查询条件，请设置！[keyValues == null]','info');
	}
	if($('#'+prefix+'_GEN_WIN').length>0){
		$('#'+prefix+'_GEN_PARENT_PANEL').window('open');
// var obj = document.getElementById(prefix+"_GEN_WIN");
// document.body.removeChild(obj);
		// 加载字段 变不可写 填充数据
		var divName = 'GEN_DATALIST';
		// 加载字段
		$.ajax({
			type:'post',
			url:_m_url+'framework/loadColumnsU',
			data:{'colId':dsId,'type':type},
			success:function(data){
				if(data ==""){
					alert("您长时间未操作，系统已经自动退出!，请重新登陆");
				}else{
					var typeT = new Array();
					typeT = type.split(";");
					divNameT = divName.split(";");
					for(var i = 0; i < typeT.length; i++){
						producePage(data[i],prefix+"_"+divNameT[i],typeT[i],'');
					}
					// 加载主键
					var configStr = keyValues;
					$.ajax({
						type:'post',
						url:_m_url+'framework/loadData',
						data:{'dsId':dsId,'config':configStr,'page':1,'rows':10000},
						async:false,
						success:function(data){
							$('#'+prefix+'_GEN_DATALIST').datagrid('loadData',data.rows);
						}
					});
					if(ainitFunc!='')eval(ainitFunc).call(this,prefix);
					if(butnId == 'cbk_sure1'){			// 收款单
						$('#'+prefix+'_dataQuery').attr('yuanDsId','ds_fx_charge1;ds_fx_charge_item1');  
					}else if(butnId == 'cbg_sure1'){	// 开票单
						$('#'+prefix+'_dataQuery').attr('yuanDsId','ds_fx_invoice_kp1;ds_fx_invoice_kp_item1');  
					}else if(butnId == 'cbj_sure1'){	// 付款单
						$('#'+prefix+'_dataQuery').attr('yuanDsId','ds_fx_pay1;ds_fx_pay_item1');  
					}else if(butnId == 'cbf_sure1'){	// 收票单
						$('#'+prefix+'_dataQuery').attr('yuanDsId','ds_fx_invoice_sp1;ds_fx_invoice_sp_item1');  
					}
				}
			}
		});
		return;
	}
	var div_box = document.createElement("DIV");
	div_box.id = prefix+"_GEN_WIN";
	div_box.height = 100;
	document.body.appendChild(div_box);
	$('#'+prefix+'_GEN_WIN').load(_m_url+'singlePages/genFun',// singlePages/sinfoFun'
			{'dsId':dsId,'butnId':butnId,'type':type,'staticWebUrl':staticWebUrl,'initFunc':initFunc,'keyValues':keyValues,'jspWebUrl':'/model/general/datalist'},
			function(){
				$.parser.parse('#'+prefix+'_GEN_DG_PANEL');
				$('#'+prefix+'_GEN_PARENT_PANEL').window({  
					width:document.documentElement.clientWidth,  
					height:document.documentElement.clientHeight,  
					draggable:false,
					top:'0',
					left:'0',
					modal:true,
					resizable:false,
					closable:false,
					collapsible:false,
					maximizable:false,
					minimizable:false
				});  
				// 加载字段 变不可写 填充数据
				var divName = 'GEN_DATALIST';
				// 加载字段
				$.ajax({
					type:'post',
					url:_m_url+'framework/loadColumnsU',
					data:{'colId':dsId,'type':type},
					success:function(data){
						if(data==""){
							alert("您长时间未操作，系统已经自动退出ssssss!，请重新登陆");
						}else{
							var typeT = new Array();
							typeT = type.split(";");
							divNameT = divName.split(";");
							// 加载datagrid的列
							for(var i = 0; i < typeT.length;i++){
								producePage(data[i],prefix+"_"+divNameT[i],typeT[i],'');
							}
							// 加载主键
							var configStr = keyValues;
// //加载dategrid的数据
							$.ajax({
								type:'post',
								url:_m_url+'framework/loadData',
								data:{'dsId':dsId,'config':configStr,'page':1,'rows':10000},
								async:false,
								success:function(data){
									$('#'+prefix+'_GEN_DATALIST').datagrid('loadData',data.rows);
									$("#aac_GEN_DATALIST").datagrid({
								        onLoadSuccess:function(){
								    		mergeCellsByField("aac_GEN_DATALIST","XT_ID");
								      }
								 });
								}
							});
							if(ainitFunc!='')eval(ainitFunc).call(this,prefix);
							if(butnId == 'cbk_sure1'){			// 收款单
								$('#'+prefix+'_dataQuery').attr('yuanDsId','ds_fx_charge1;ds_fx_charge_item1');  
							}else if(butnId == 'cbg_sure1'){	// 开票单
								$('#'+prefix+'_dataQuery').attr('yuanDsId','ds_fx_invoice_kp1;ds_fx_invoice_kp_item1');  
							}else if(butnId == 'cbj_sure1'){	// 付款单
								$('#'+prefix+'_dataQuery').attr('yuanDsId','ds_fx_pay1;ds_fx_pay_item1');  
							}else if(butnId == 'cbf_sure1'){	// 收票单
								$('#'+prefix+'_dataQuery').attr('yuanDsId','ds_fx_invoice_sp1;ds_fx_invoice_sp_item1');  
							}
						}
					}
				});
			}
	);
}


	
// 每次点击审核，审批，作废...按钮时刷新页面的单据状态的图片
function refreshImg(dsId,pkStr,prefix){
	$.ajax({
		type:'post',
		url:_m_url+'singlePages/infoData',
		data:{'dsId':dsId,'keyValues':pkStr},
		success:function(dateRow){
			// 得到审核的状态(如审核，审批，作废)
			showDjImg(dateRow,prefix);
		}
	});
}
function refreshImgM(dsId,pkStr,prefix){
	$.ajax({
		type:'post',
		url:_m_url+'singlePages/mDataMaD',
		data:{'dsId':dsId,'keyValues':pkStr},
		success:function(dateRow){
			// 得到审核的状态(如审核，审批，作废)
			showDjImgMO(dateRow,prefix);
		}
	});
}

/*******************************************************************************
 * ***********************************i 通用的审核/审批/作废方法
 ******************************************************************************/
function common_desOrApply(obj,aord){  
	if(aord == '0'){    // 作废
		$.messager.confirm("提示","作废后无法还原，确定要作废吗？",function(r){
			if(!r){
				return;
			}else{
				desApplyFunc(obj,aord);
			}
		});
	}else if(aord == '1'){   // 审核、审批
		desApplyFunc(obj,aord);
	}
}

// 审核作废按钮调用
function desApplyFunc(obj,aord){
	// 获得页面的前缀
	var prefix = $(obj).attr('pre');
	// 得到审批的表对应的单据dsId
	var dsId=$(obj).attr('dsid');
	var butnCode = $(obj).attr('code');
	var dsIds= dsId.split(';');
	var flag=$(obj).attr('flag');
	var pkStr ="";
	var items='';
	var formId ="";  // 按钮的formId
	var pkVal=""; // 主键值
	var pfks = eval("window.parent."+dsIds[0]+"_pk"); // 主键
	if(flag =="1"){     // 单录单
		pkStr = parsePKStr(prefix+"_A_AFORM");
		pkVal = $('#'+prefix+"_A_AFORM input[qucln = "+pfks+"]").val();
	    formId=prefix+"_S_UBUTN";
	    var s_values=getFormJsons(prefix+"_A_AFORM");
	}else if(flag == '2'){    // 主明细
		pkStr = parsePKStr(prefix+"_addWinForm");
		pkVal = $('#'+prefix+"_addWinForm input[qucln = "+pfks+"]").val();
		formId = prefix+"_M_UBUTN";
		m_values=getFormJsons(prefix+"_addWinForm");
		m_changes=$('#'+prefix+"_addItemDatagrid").datagrid('getChanges');   // 得到明细的数据
	}else if(flag == '3'){    // 一对多
		pkStr = parsePKStr(prefix+"_maddPEForm");
		pkVal = $('#'+prefix+"_maddPEForm input[qucln = "+pfks+"]").val();
		items=$(obj).attr('items');
		formId = prefix+"_M_UBUTN";
		o_values=getFormJsons(prefix+"_maddPEForm");
	}
	if(pkVal == null || pkVal==""){     // 添加页面没有保存单据的时候不能审核
		$.messager.alert("提示","单据尚未保存，不能进行其他操作！");
		return;
	}else if(pkVal!=null&&pkVal!=""&&pkVal!='undefined'){   // 修改页面如果数据发上改变那么提示用户是否保存
		if(flag==1){
			if(s_values==0){
			}else{  // 数据没有发生改变的时候直接审核不需要提示
				$.messager.alert('操作提示',"数据已经改变,请先进行保存");
				return;
			}
		}else if(flag==2){
			if(m_values==0&&m_changes==0){   // 数据没有发生改变的时候直接审核不需要提示
			}else{   // 有修改元素的时候
				$.messager.alert('操作提示',"数据已经改变,请先进行保存");
				return;
			}
		}
	}
//	//记录客户的操作
//	$.ajax({
//		url:_m_url+'framework/recordOperateLog',  
//		type:'post',
//		data:{'dsId':$(obj).attr('dsId'),'operateName':"code_"+butnCode+"_djId_"+pkVal,"clickEvent":"function_common_desOrApply"}, 
//		success:function(data){
//			console.log(data);
//		}
//	});
	
	$.ajax({
		url:_m_url+'store/commDesOrApply',                      
		type :"post",                         
		data :{'dsId':dsId,'pkStr':pkStr,'butnCode':butnCode,'aord':aord},
		dataType:"json",
		success : function(data) {
			// 请求成功后要执行的代码
			if(data.info == "0"){  // 作废
				if(data.msg=="success"){
					if(flag =="1"){
						endAppLoadDataS(dsId,prefix,pkStr);
					}else if(flag == '2'){
						endAppLoadDataM(dsId,prefix,pkStr);
					}else if(flag == '3'){
						loadDataO(dsId,prefix,pkStr,items);
					}
					if(data.msgInfo !=null && data.msgInfo !=""){
						if(data.msgInfo !='success'){
							$.messager.alert("提示",data.msgInfo,'info');
						}
					}
				}else if(data.msg=='error'){
					if(data.info !=null && data.info !=""){
						$.messager.alert('错误提示',data.msgInfo,"info");
					}else{
						$.messager.alert('提示',"单据作废失败,请联系开发人员！"); 
					}
				}
			}else if(data.info=="1"){  // 审核或者审批
				//alert("data.msg:"+data.msg+"======data.msgInfo:"+data.msgInfo)
				if(data.msg=="success"){
					// 审核或者审批成功
					if(data.msgInfo !=null && data.msgInfo !="" &&data.msgInfo !='success'){
						$.messager.alert("提示",data.msgInfo,'info');
					}
//					else{
					if($(obj).attr("id").indexOf("APPROVE_BUT")>0){    // 审批
						// 更新该单据最后一级的审批结果（审批通过）
						var approveInput=$(obj).next("input[id=approveObj]");
						var approveObj={};
						approveObj["approveLevel"]=$(approveInput).attr("level");   // 审批的等级
						approveObj["djId"]=$(approveInput).attr("djId");  // 审批的单据的id
						approveObj["isExamine"]=$(approveInput).attr("isExamine");   // 审批的结果
						approveObj["examineContent"]=$(approveInput).attr("content");   // 审批的内容
						approveObj["dsId"]=$(approveInput).attr("dsId").split(";")[0];   // 审批的dsId
						$.ajax({
							url:_m_url+'approve/approveMaxLevel',
							type:'post',
							contentType:"application/json;charset=utf-8",
							dataType:"json",
							data:JSON.stringify(approveObj),
							async:false,
							success:function(data){
							},
							error : function() {
								// 请求失败后要执行的代码
								$.messager.alert('提示',"审批是发生异常，请联系开发");
							}
						});
					}	
//					}
					if(flag =="1"){
						endAppLoadDataS(dsId,prefix,pkStr);
					}else if(flag == '2'){
						endAppLoadDataM(dsId,prefix,pkStr);
					}else if(flag == '3'){
						loadDataO(dsId,prefix,pkStr,items);
					}
				}else if(data.msg=='error'){
					// 判断单据是审核还是审批失败
					if($(obj).attr("id").indexOf("APPROVE_BUT")>0){    // 审批
						if(data.info !=null && data.info !=""){
							$.messager.alert('提示',data.msgInfo,'info');
						}else{
							$.messager.alert('提示',"<strong>单据审批失败</strong>,请联系开发人员！");
						}
					}else if($(obj).attr("id").indexOf("VERIFY_BUT")>0){   // 审核
						if(data.info !=null && data.info !=""){
							$.messager.alert('提示',data.msgInfo,'info');
						}else{
							$.messager.alert('提示',"<strong>单据审核失败<strong>失败,请联系开发人员！");
						}
					}
				}
			}else if(data.info=='2'){	// 还原
				if(data.msg=="success"){
					if(flag =="1"){
						endAppLoadDataS(dsId,prefix,pkStr);
					}else if(flag == '2'){
						endAppLoadDataM(dsId,prefix,pkStr);
					}else if(flag == '3'){
						loadDataO(dsId,prefix,pkStr,items);
					}
				}else if(data.msg=='error'){
					if(data.info !=null && data.info !=""){
						$.messager.alert('提示',data.msgInfo,'info');
					}else{
						$.messager.alert('提示',"单据还原失败,请联系开发人员！");
					}
				}
			}
			// 刷新图片
			if(flag =='1'){
				refreshImg(dsId,pkStr,prefix);
			}else if(flag =='2'){
				refreshImgM(dsId,pkStr,prefix);
			}
		},
		error : function() {
			// 请求失败后要执行的代码
			$.messager.alert('提示',"作废发生异常,请联系开发人员");
		}
	});
}



/**
 * 单录单 保存/修改/审核/审批完成之后刷新数据
 * 
 * @return
 */
function endAppLoadDataS(dsId,prefix,keyValues){
	 var pdivName=prefix+'_A_ADATAL'; 
	 var funcId=$(window.parent.document.getElementById(prefix+'_iframe')).attr("funcid");
	 $.ajax({
		type:'post',
		url:_m_url+'singlePages/sinfoData',
		async:false,
		data:{'dsId':dsId,'keyValues':keyValues},
		success:function(dateRow){
			// 加载下拉框
			$.ajax({
				url:_m_url+'dz/queryDzList',
				type:'post',
				async:false,
				data:{dzIds:serializeEDIType(pdivName)},
				success:function(data){
					// 1.先清空数据该表单中所有的值，详情页面的下拉框和数据
					clearFormVal(pdivName);
					
					//填充 表单数据 和下拉框数据
					fillSelect(pdivName,data);
					fillInfo(pdivName,dateRow.queryRow[0]);
					cEfect(pdivName,2);
					
					// 加载状态图片的（审核，审批，作废、、、）
					showDjImg(dateRow,prefix);
					
					//获取详情界面的回调函数
					var winitFunc=dateRow.winitFunc;
					if(winitFunc!=null&&winitFunc!=undefined&&winitFunc.trim()!=""){
						eval(winitFunc).call(this,data,dsId,prefix,keyValues);
					}
					
					//初始化详情和添加页面的权限
					var isRColn=initAinfoPageRight(funcId,keyValues,dsId,prefix,"2","s");
					analyColnDataRight(dsId,isRColn,{},"s",pdivName,"",{});
					
					//清除缓存，重新根据dsid加载部分对照信息
					window.parent.lzByDsId(dsId);
					
				}
			});
			
		}
	});
}


/**
 * 主明细 保存/修改/审核/审批完成之后刷新数据
 * 
 * @param dsId
 * @param prefix
 * @param keyValues
 * @return
 */
function endAppLoadDataM(dsId,prefix,keyValues){
	var funcId=$(window.parent.document.getElementById(prefix+'_iframe')).attr("funcid");
	var dsIds = dsId.split(";");
	var pdivName =prefix+'_addWinTable';
	var gridName=prefix+'_addItemDatagrid';
	var keepDjMPInit="keepDjMPInitFunc";   // 单据是否保留修改的权限
	$.ajax({
		type:'post',
		url:_m_url+'singlePages/mDataMaD',
		data:{'dsId':dsId,'keyValues':keyValues},
		async:false,
		success:function(dateRow){
			$.ajax({
				url:_m_url+'dz/queryDzList',
				type:'post',
				data:{dzIds:serializeEDIType(pdivName)},
				success:function(data){
					// 1.先清空数据该表单中所有的值，详情页面的下拉框和数据
					clearFormVal(pdivName);
					
					// 填充数据 并加载下拉框数据
					fillSelect(pdivName,data);
					fillInfo(pdivName,dateRow.queryRow[0][0]);
					cEfect(pdivName,2);
					var d = {rows:dateRow.queryRow[1]};
					$('#'+prefix+'_addItemDatagrid').datagrid("loadData",d);
					
					// 加载状态图片的（审核，审批，作废、、、）
					showDjImgMO(dateRow,prefix);
					
					// 获取详情界面的回调函数
					var winitFunc=dateRow.winitFunc;
					if(winitFunc!=null&&winitFunc!=undefined&&winitFunc!=""){
						eval(winitFunc).call(this,data,dsId,prefix,keyValues);
					}
				
					// 初始化详情和添加页面的权限
					var isRColn=initAinfoPageRight(funcId,keyValues,dsId,prefix,"2","m");
					analyColnDataRight(dsId,isRColn,{},"m",pdivName,gridName,{});
					
					//加载明细的统计
					var jsparam = eval("window.parent."+dsIds[0]+"_cfxjs"); //加载计算参数
					if(jsparam!=undefined&&jsparam!=null&&jsparam!=""){
						//初始化明细计算的弹框
						initMxTotalCalcu(jsparam,prefix+'_addItemDatagrid');
					}
					// 清除缓存，重新根据dsid加载部分对照信息
					window.parent.lzByDsId(dsId);
				}
			});
		}
	});
}





// 一对多明细保存的时候刷新页面的窗口显示数据
function loadDataO(dsId,prefix,keyValues,items){
	var dsIds = dsId.split(";");
	var mdivName=prefix+"_maddPETb";
	cEfect(mdivName,1);
	for ( var i = 0; i < items; i++) {
		var panelId=prefix+"_mPanelAdd"+i;
		$("#"+panelId+" #"+prefix+"_MCLN_FORM_0").nextAll().remove();
		$("#"+panelId+" #"+prefix+"_MCLN_FORM_0").removeAttr('saY');
		cEfect(panelId,1);
	}
	$.ajax({
		type:'post',
		url:_m_url+'singlePages/oDataRow',
		data:{'dsId':dsId,'keyValues':keyValues},
		success:function(dateRow){
			// 填充主表信息
			fillInfo(mdivName,dateRow.queryRow[0][0]);
			cEfect(mdivName,2);
			if(dateRow.queryRow[0][0].IS_VERIFY == '1'){
				readOnlyForm(mdivName);
			}
			for ( var i = 0; i < items; i++) {
				for ( var j = 0; j < dateRow.queryRow[i+1].length; j++) {
					var d = {rows:dateRow.queryRow[i+1]};
					$('#'+prefix+"_mPanelAdd"+i).datagrid("loadData", d);
				}
				if(dateRow.queryRow[0][0].IS_VERIFY == '1'){
					readOnlyForm(prefix+"_mPanelAdd"+i);
				}
			}
			comButn(dsId,dateRow,prefix,'3',keyValues); // 判断共用按钮
		}
	});
}


/*******************************************************************************
 *通用的复制
 ******************************************************************************/
function common_copy(obj){
	var sflag = $(obj).attr('sflag');   //获取当前单据的类型（s:单录单  m:主明细     o:一对多）
	var dsId = $(obj).attr('dsid');
	var moro = $(obj).attr('moro');    //moro:判断使用哪个模板 (0:左右主明细的模板      1:一对多的模板      2:上下主明细的模板
	var prefix = $(obj).attr('pre');
	var sou =  $(obj).attr('sou'); // 添加页面
	var dsIds = dsId.split(';');
	var pfks = eval("window.parent."+dsIds[0]+"_pk"); // 主键
	var initFunc = pdInitFunc(dsId,prefix,'3');
	var type="1";
	var selectRow=null;
	if (sflag=='s'){
		selectRow=$("#"+prefix+"_DATALIST").datagrid("getSelections");	//获取选中的行
	}else if(sflag=='m'){
		selectRow=$("#"+prefix+"_DATALIST").datagrid("getSelections");
	}else{
		 $.messager.alert("提示","复制的标志位不存在，请检查");
	}
	
	if(selectRow==null||selectRow.length==0){     // 如果列表界面没有选中行那么提示应该先选择
	     $.messager.alert("提示","请选中一行数据才能进行复制");
	     return;
	}else if(selectRow.length > 1){
		$.messager.alert("提示","只能选中一行才能进行复制操作");
		//$("#"+prefix+"_DATALIST").datagrid("clearSelections");
	     return;
	}
	if(sflag == 's'){// 单表保存
		_s_aws(prefix,dsId,dsId,type,'',initFunc,'','3','');   //3：代表是复制界面
	}else if(sflag == 'm'){// 主明细保存
		type='1;77';
		if(moro == '2'){
			_t_aws(prefix,dsId,dsId,type,'',initFunc,'','','3');
		}else{
			_m_aws(prefix,dsId,dsId,type,'',initFunc,'','','3');
		}
	}
}

/*******************************************************************************
 * ******通用的保存提交,主要用于提交单据的审批
 ******************************************************************************/
function common_submit(obj){
	// 获取is_verify的值
	var is_verify=$("input[qucln=IS_VERIFY]").val();
	if(is_verify!=null&&is_verify!=""&&is_verify!="0"){
		$.messager.show({title:"操作提示",msg:"亲，该单据已经进入流程审批的环节,不能重复提交!",showType:'slide',timeout:1000,showSpeed:400});
		return;
	}
	var prefix = $(obj).attr('pre');
	var dsId =$(obj).attr("dsid");
	var sflag=$(obj).attr("sflag");  // 用于标识是单录单，主明细，还是一对多
	var pkStr=""; // 主键和主键值的拼接
	var values="0"
	var changes=0;
	// 1.单录单
	if(sflag=="s"){
		pkStr = parsePKStr(prefix+"_A_AFORM");
		values=getFormJsons(prefix+"_A_AFORM");// 将form中的值转换为键值对
	}
	// 2.主明细
	else if(sflag=="m"){
		pkStr = parsePKStr(prefix+"_addWinForm");
		values=getFormJsons(prefix+"_addWinForm");// 将form中的值转换为键值对
		//关闭正在编辑的行
		var index=$('#'+prefix+"_addItemDatagrid").attr("currentindex");
		$('#'+prefix+"_addItemDatagrid").datagrid("endEdit",index);
		changes=$('#'+prefix+"_addItemDatagrid").datagrid('getChanges').length;
		dsId=dsId.split(";")[0];
	}
	// 3.一对多
	else if(sflag=="o"){
		pkStr = parsePKStr(prefix+"_maddPEForm");
		values=getFormJsons(prefix+"_maddPEForm");// 将form中的值转换为键值对
		dsId=dsId.split(";")[0];
	}
	var pkName=pkStr.split("-")[0];  // 主键名称
	var pkVal=pkStr.split("-")[1];   // 主键值
	// 1.先判断单据有没有保存(首先判断单据有没主键，然会在判断单据与没有进行数据的修改)
	if(pkVal==null||pkVal==""||pkVal=='undefined'){
		$.messager.alert("提示","亲，单据尚未保存,不能提交！");
		return;
	}else{
		if(values=="0"&&changes<=0){// 如果数据没有发生改变
			// 获取审批按钮，和单据的is_verify的值
			if($("#"+prefix+"_APPROVE_BUT").length>0){
				if($("input[qucln=IS_VERIFY]").val()==0||$("input[qucln=IS_VERIFY]").val()==null||$("input[qucln=IS_VERIFY]").val()==""){   // 得到审批的值
					// 如果是0，那么代表该单据没有生成审批的数据，此时调用存储过程生成审批的单据，并且更新Is_verify的值
					var list=getApproveList(pkVal)
					if(list==null||list==""||list.length==0){
						$.ajax({
							type:"post",
							url:_m_url+"approve/produceApproveList",
							data:{"djId":pkVal,"dsId":dsId,"djType":"","djCode":""},
							async:false,
							success:function(returnObj){
								if(returnObj.msg=='success'){
									$.messager.show({title:"操作提示",msg:"亲，该单据已经进入流程审批的环节!",showType:'slide',timeout:1000,showSpeed:400});
								}else{
									$.messager.alert("操作失败","<strong>警告</strong>：<br>"+returnObj.msg);
								}
							},error : function() { 
								$.messager.alert("操作失败","<strong>警告</strong>：<br>"+returnObj.msg,"info");
							}
						});
						// 属性页面，显示等待一审的图片
						if(sflag=="s"){
							endAppLoadDataS(dsId,prefix,pkStr);
						}else if(sflag=="m"){
							endAppLoadDataM($(obj).attr("dsid"),prefix,pkStr);
						}
					}else{
						console.log("该单据存在是错误数据,请后台把该单据的在sys_approve中的数据删除");
					}
				}
			}else{
				
			}
		}else{
			$.messager.alert("提示","亲，单据尚未保存,不能提交！");
			return;
		}
	}
}



// 得到审批的数据
function getApproveList(djId,dsId){
	var data = null;
	$.ajax({
		type:"post",
		url:_m_url+"approve/loadApplyListByDjId",
		data:{"djId":djId,"dsId":dsId},
		async:false,
		success:function(list){
			data=list;
		},error : function() { 
			// 请求失败后要执行的代码
			$.messager.alert("提示信息","获取审批时出现异常","");
		}
	});
	return data;
}

/*******************************************************************************
 * 通用的保存
 * @param prefix
 * @param dsId
 * @param moro
 * @returnd
 */
function common_save(obj){
	var sflag = $(obj).attr('sflag');
	var dsId = $(obj).attr('dsId');
	var prefix = $(obj).attr('pre');
	var sou =  $(obj).attr('sou');  
	var mapRecords=new Array();
	var oflag=$(obj).attr("oflag");   // 是否是特殊的保存
	var isCopy=$(obj).attr("isCopy");
	var isBack=$(obj).attr("isBack");    // 标志是不是保存返回按钮的保存 是的时候panle关闭
    var cdsId=dsId.split(";")[0];
//	//记录客户的操作
//	$.ajax({
//		url:_m_url+'framework/recordOperateLog',
//		type:'post',
//		data:{'dsId':dsId,'operateName':"common_baocun","clickEvent":"function_common_save"}, 
//		success:function(data){
//			console.log(data);
//		}
//	});
    /*if(cdsId=='ds_fx_order_sal1'){
        alert("进入点击事件");
        $.ajax({
	    url:_m_url+'commsave/isRepeat',
		type:'post',
	    data:{'dsId':dsId,'operateName':"common_baocun","clickEvent":"function_common_save"},
		success:function(data){
			console.log(data);
		}
	})
    }
    else{

    }*/
	if(sflag == 's'){// 单表保存
		var formid = prefix+"_A_AFORM";
		if(checkRequire(formid) != "Success")return false;
		var values=getFormJsons(formid);// 将form中的值转换为键值对
		if(values==0){
			$.messager.show({title:"保存提示",msg:"亲，你没有对数据进行修改，无需保存!",showType:'slide',timeout: 1500,showSpeed:400});
			return;
		}
		var receiveZMobj = new Array();
		if(sou==2){
			// 详情页面保存
			receiveZMobj = {'zmReceiveObj':{"diu":"1","dsid":dsId,'mapRecord':values}};
		}else if(sou==1){
			// 添加页面保存
			receiveZMobj = {'zmReceiveObj':{"diu":"0","dsid":dsId,'mapRecord':values}};
		}
		$.ajax({
			url:_m_url+'commsave/commU',
			type:'post',
			contentType: "application/json;charset=utf-8",
			dataType: "json",
			async:false,
			data:JSON.stringify(receiveZMobj),
			success:function(data){
			if(sou==2){
				// 更新成功
				if(data.msg == 'success'){
					//删除临时文件家中的缓存图片
					clearCacheImgs(dsId,'');
					$("#"+formid+" input,select,textarea").each(function(){
						$(this).removeAttr("chan");
					});
					if(isBack=="true"){ // 返回保存后关闭panle
						$('#'+prefix+'_a_parentPanel').window('close');
						$(obj).removeAttr("isBack");
					}else{
						$.messager.show({title:"保存提示",msg:"o(≧v≦)o~~【亲,修改数据成功】"+(data.info==null?"":data.info),showType:'slide',timeout: 2500,showSpeed:400});
						var pkStr = parsePKStr(prefix+"_A_AFORM");
						endAppLoadDataS(dsId,prefix,pkStr);
					}
				}//更新失败
				else{
					 $.messager.alert("保存提示","o(︶︿︶)o1【修改数据失败】"+(data.info==null?"":data.info));
				}
			}else if(sou==1){
				// 添加成功
				if(data.msg == 'success'){
					//删除临时文件家中的缓存图片
					clearCacheImgs(dsId,'');
					
					$(obj).attr('sou',2);  // 保存成功后该页面为详情的页面
					// 给表单中的主键赋值
					$("#"+formid+" input").each(function(){
						if($(this).attr("vpk")=='T'){
							$(this).val(data.infob.split("-")[1]);
						}
					});
					if(isBack=="true"){ // 返回保存后关闭panle
						$('#'+prefix+'_a_parentPanel').window('close');
						$(obj).removeAttr("isBack");
					}else{
						$.messager.show({title:"保存提示",msg:"o(≧v≦)o~~【亲,添加数据成功】"+(data.info==null?"":data.info),showType:'slide',timeout: 2500,showSpeed:400});
						// 保存后移除表单中所有的标签的chan属性
						$("#"+formid+" input,select,textarea").each(function(){
							$(this).removeAttr("chan");
						});
						// 1.保存成功后刷新主表
						var pkStr = parsePKStr(prefix+"_A_AFORM");
						endAppLoadDataS(dsId,prefix,pkStr);
					}
				}
				//添加失败
				else{
					$.messager.alert("保存提示","o(︶︿︶)o2【添加数据失败】"+(data.info==null?"":data.info));
				}
			}
		}
		});
	}else if(sflag == 'm'){// 主明细表保存
		var zhuPk;   // 保存主表的主键名
		var zhuPkval; // 保存主表的主键值
		var maps=new Array();
		var index=0;
		var formid = prefix+"_addWinForm";
		var mapRecords = new Array();
		var mapRecord;
		if(checkRequire(formid) != "Success")return;
		var values=getFormJsons(formid);// 将form中的值转换为键值对
		var zdsId=dsId.split(";")[0];
		var mdsId=dsId.split(";")[1];
		var mapRecord;
		if(sou==2){
			// 修改
			mapRecord={"diu":"1","dsid":zdsId,'mapRecord':values};
		}else if(sou==1){
			// 添加
			mapRecord={"diu":"0","dsid":zdsId,'mapRecord':values};
		}
		// 保存后保存主键和主键的值
		$("#"+formid+" input").each(function(){
			if(typeof($(this).attr('vpk')) != 'undefined' && $(this).attr('vpk') == 'T'){
				zhuPk=$(this).attr('qucln');
				zhuPkval=$(this).val();
			}
		});
		var row ={};
		var allRows =$('#'+prefix+"_addItemDatagrid").datagrid('getRows');
		for(var i=0;i<allRows.length;i++){
			$('#'+prefix+"_addItemDatagrid").datagrid('endEdit',i);
		}
		deleteRows = $('#'+prefix+"_addItemDatagrid").datagrid('getChanges','deleted');
		updateRows=  $('#'+prefix+"_addItemDatagrid").datagrid('getChanges','updated'); 
		inserteRows =$('#'+prefix+"_addItemDatagrid").datagrid('getChanges','inserted');
		var changes=$('#'+prefix+"_addItemDatagrid").datagrid('getChanges');
		
		if(isCopy=='1'){   // 如果直接是复制保存那么则把该datagrid中所有的行变成插入的行
			inserteRows=allRows;
			if(changes.length==0){
				changes=inserteRows;
			}
		}
		var ufcolns = $('#'+prefix+"_addItemDatagrid").datagrid('getColumnFields');	// get unfrozen columns
		var fcolns = $('#'+prefix+"_addItemDatagrid").datagrid('getColumnFields', true); // get frozen columns
		var fullColns=ufcolns.concat(fcolns);
		
		var itemPk= eval("window.parent."+mdsId+"_pk");  // 获得明细表的主键
		if(isCopy!='1'){
			if(deleteRows.length>0){
				for(var i = 0; i <deleteRows.length ; i++){
					var tmp = {};
					for( p in deleteRows[i]){
						if(p==itemPk){
							tmp[p]=deleteRows[i][p];  // 删除时只保存主键的值
						}
					}
					var row= {"diu":"2","dsid":mdsId,'mapRecord':tmp};   // 删除时diu明细的标志位2
					mapRecords[index] = row;
					index++;
				}
			}
		}
		// 得到明细表中跟新的数据
		if(isCopy!='1'){
			if(updateRows.length>0){
				for(var i = 0; i <updateRows.length ; i++){
					var tmp = {};
					for( p in updateRows[i]){
						tmp[p] = updateRows[i][p];
					}
					var row={"diu":"1","dsid":mdsId,'mapRecord':tmp};
					mapRecords[index] = row;
					index++;
				}
			}
		}
		// 得到明细表中添加的数据
		if(inserteRows.length>0){
			for(var i = 0; i<inserteRows.length ; i++){
				var tmp = {};
				for(var j=0;j<fullColns.length;j++){
					var coln=fullColns[j];
					tmp[coln]=inserteRows[i][coln]==undefined?"":inserteRows[i][coln];
				}
				tmp[itemPk]="";   // 明细的主键
				tmp[zhuPk]="";    // 明细的外键
				var row= {"diu":"0","dsid":mdsId,'mapRecord':tmp};
				mapRecords[index] = row;
				index++;
			}
		}
		
		// 判断有没有对表单和datagrid中的数据进行修改
		if(values==0&&deleteRows.length<=0&&updateRows.length<=0&&inserteRows.length<=0){
			$.messager.show({title:"保存提示",msg:"亲，你没有对数据进行修改，无需保存!",showType:'slide',timeout: 1500,showSpeed:400});
			return;
		}
		if(sou==2){
			//更新数据
			if(values==0){
				var o = {};
				o[zhuPk] = zhuPkval;
				mapRecord = {"diu":"1","dsid":zdsId,'mapRecord':o};
				receiveZMobj={"zmReceiveObj":mapRecord,"receiveObjs":mapRecords};// 修改的时候主表的主键一定要传过来
			}else{
				if(changes.length==0){   // 如果明细
					receiveZMobj={"zmReceiveObj":mapRecord};// 修改的时候主表的主键一定要传过来
				}else{
					receiveZMobj={"zmReceiveObj":mapRecord,"receiveObjs":mapRecords};// 修改的时候主表的主键一定要传过来
				}
			}
			$.ajax({   
				url:_m_url+'commsave/commU',
				type:'post',
				contentType: "application/json;charset=utf-8",
				dataType: "json",
				async:false,
				data:JSON.stringify(receiveZMobj),
				success:function(data){
				//更新数据成功
				if(data.msg=='success'){
					//删除临时文件家中的缓存图片
					clearCacheImgs(dsId,'');
					
					$('#'+prefix+"_addItemDatagrid").datagrid('acceptChanges');  // 提交自从被加载以来或最后一次调用acceptChanges以来所有更改的数据，防止重复提交数据
					$("#"+formid+" input").each(function(){
						$(this).removeAttr("chan");
				    });		
					if(isBack=="true"){ 
						$('#'+prefix+'_m_parentPanel').window('close');
					}else{
						$.messager.show({title:"保存提示",msg:"o(≧v≦)o~~【亲,修改数据成功】"+(data.info==null?"":data.info),showType:'slide',timeout: 2500,showSpeed:400});
					}
					$(obj).removeAttr("isBack");
					pkStr = parsePKStr(prefix+"_addWinForm");
					endAppLoadDataM(dsId,prefix,pkStr);
				}
				//更新数据失败
				else{
					$.messager.alert("保存提示","o(︶︿︶)o【修改数据失败】"+(data.info==null?"":data.info));
				}
			}
			});
		}else if(sou==1){  // 添加
			if(values==0){
				$.messager.show({title:"保存提示",msg:"[请先添加主表的数据]!",showType:'slide',timeout: 1500,showSpeed:400});
				return;
			}
			if(changes.length==0){   // 如果明细
				receiveZMobj={"zmReceiveObj":mapRecord};// 修改的时候主表的主键一定要传过来
			}else{
				receiveZMobj={"zmReceiveObj":mapRecord,"receiveObjs":mapRecords};
			}
			console.log("JSON.stringify(receiveZMobj):"+JSON.stringify(receiveZMobj));
			$.ajax({
				url:_m_url+'commsave/commU',
				type:'post',
				contentType: "application/json;charset=utf-8",
				dataType: "json",
				async:false,
				data:JSON.stringify(receiveZMobj),
				success:function(data){	
					//添加成功
					if(data.msg=='success'){
						//删除临时文件家中的缓存图片
						clearCacheImgs(dsId,'');
						
						// 给主表的主键赋值
						$("#"+formid+" input").each(function(){
							if(typeof($(this).attr('vpk')) != 'undefined' && ($(this).attr('vpk') == 'T')){
								$(this).val(data.infob.split("-")[1]);
							}
						});
						$('#'+prefix+"_addItemDatagrid").datagrid('acceptChanges');  // 提交自从被加载以来或最后一次调用acceptChanges以来所有更改的数据，防止重复提交数据
						$(obj).attr('sou',2);  // 保存成功后该页面为更新的页面
						$(obj).removeAttr("iscopy");    // 保存成功后把复制的标志位的属性移除
						 // 保存成功后移除页面的所有的chan属性
						$("#"+formid+" input").each(function(){
								$(this).removeAttr("chan");
						});
						if(isBack=="true"){ // 返回保存后关闭panle
							$('#'+prefix+'_m_parentPanel').window('close');
						}else{
							$.messager.show({title:"保存提示",msg:"o(≧v≦)o~~【亲,添加数据成功】"+(data.info==null?"":data.info),showType:'slide',timeout: 2500,showSpeed:400});
						}
						$(obj).removeAttr("isBack");
						pkStr = parsePKStr(prefix+"_addWinForm");
						endAppLoadDataM(dsId,prefix,pkStr);
					}
					//添加失败
					else{
						$.messager.alert("保存提示","o(︶︿︶)o【添加数据失败】"+(data.info==null?"":data.info));
						
					}
				}
			});
			}
		}
		window.parent.lzByDsId(dsId);
	}


/**********************************************
 *	我的工作台 我的任务中的双击事件
 * @param prefix  前缀
 * @param dsId 
 * @param moro   判断是那种单据
 * @return
 ************************************************/
function _p_work(rowData,flagData){
	// 1.根据rowData找到那条数据的flowId
	// 2.根据flowId找到这条数据的DsId
	// 3.根据dsId找到在sysDatastore中的数据获取一系列的参数（并且得到一个判断是那种单据的参数，用来判断调用那个窗口）
	var flowId = rowData.FLOW_ID;
	var djId = rowData.DJ_ID;  // 单据Id
	var manageId = rowData.MANAGE_ID;
	var xtId = rowData .XT_ID;
	var keyValues = '';
	$.ajax({
		type:'post',
		url:_m_url+'bjFlow/dsIdByNode',  // 得到flowNode数据的路径
		data:{'flowId':flowId,'manageId':manageId}, 
		success:function(data){
			console.log(data);
			var store = data.dataStore;
			var funcId=data.funcId;
			var flag ='';
			if(data.msg == "noPar"){
				$.messager.alert("提示","父节点: "+data.info+"流程还未执行，不允许执行本节点");
				return;
			}else if(data.msg == 'NoDjID'){        // 新增窗口
				flag = '1'; 
				keyValues = 'XT_ID-'+xtId; // 拉取数据用的
			}else if(data.msg.substring(0,3) == "msg"){
				$.messager.alert('提示',data.msg.substring(3,data.msg.length));  
				return;
			}else{    // 修改窗口
				flag = '2'; 
				keyValues =data.msg;
			} 
			// 得到一系列的参数
			var smoro = store.smoro; // 判断单据
			var dsId = data.dsId;
			var urlJs = store.urlJs;
			var ainitFunc=data.ainitFunc;	//列表界面的回调函数
			var winitFunc=data.winitFunc;	//添加和详情页面的回调函数
			var panelTitle = store.panelTitle;
			var staticWebUrl = store.staticWebUrl;
			var prefix = store.prefix;
			var items = store.items; // 明细表个数
			var wainitFunc ='_p_qcsx';
			if(smoro == '0' || smoro ==null){  // 单录单
				addPTabT(panelTitle,_m_url+'singlePages/squeryFun?dsId='+dsId+'&type=4;3;6&staticWebUrl=&initFunc=&ainitFunc='+ainitFunc+'&winitFunc='+winitFunc+'&wainitFunc='+wainitFunc+'&aoru='+flag+'&keyValues='+keyValues+'&flag=1&choice=1','',prefix,'backFun',keyValues,dsId,flag,winitFunc,funcId);
			}else if(smoro == '1'){ // 主明细
				addPTabT(panelTitle,_m_url+'singlePages/mqueryFun?dsId='+dsId+'&type=4;3;6&staticWebUrl=&initFunc=&ainitFunc='+ainitFunc+'&winitFunc='+winitFunc+'&wainitFunc='+wainitFunc+'&flag=1&aoru='+flag+'&choice=1&keyValues='+keyValues+'&moro=0','',prefix,'backFunM',keyValues,dsId,flag,winitFunc,funcId);
			}else if(smoro == '2'){ // 一对多
				addPTabT(panelTitle,_m_url+'singlePages/oqueryFun?dsId='+dsId+'&type=4;3&staticWebUrl=&initFunc=&ainitFunc='+ainitFunc+'&jspWebUrl=/model/onetoM/oquery&flag=1&aoru='+flag+'&choice=1&items='+items+'&keyValues='+keyValues,'',prefix,'backFunO',keyValues,dsId,flag,items,funcId);
			}else if(smoro == '3'){ //主明细上下结构
				addPTabT(panelTitle,_m_url+'singlePages/mqueryFun?dsId='+dsId+'&type=4;3;6&staticWebUrl=&initFunc=&ainitFunc='+ainitFunc+'&winitFunc='+winitFunc+'&wainitFunc='+wainitFunc+'&flag=1&aoru='+flag+'&choice=1&keyValues='+keyValues+'&moro=2','',prefix,'backFunMt',keyValues,dsId,flag,winitFunc,funcId);
			}else if(smoro == '4'){//成本核算单的特殊情况
				addPTabT(panelTitle,_m_url+'singlePages/mqueryFun?dsId='+dsId+'&type=4;3;6&staticWebUrl=&initFunc=cbhsDoubClick&ainitFunc=_zmx_butns&winitFunc=_all_cbhiddenM&wainitFunc='+wainitFunc+'&flag=1&aoru='+flag+'&choice=1&keyValues='+keyValues+'&moro=3','',prefix,'backFunMt',keyValues,dsId,flag,'_all_cbhiddenM',funcId);
			}
		}
	})
}




/*******************************************************************************
 * 添加父窗口的标签START
 ******************************************************************************/
function addPTabT(subtitle,url,icon,prefix,cbnf,keyValue,dsId,flag,items,funcId,choice){
    var jq = top.jQuery;    
    if (jq("#tabs").tabs('exists', subtitle)){ 
        jq("#tabs").tabs('select', subtitle);  
        if(cbnf != ""){
			eval(cbnf).call(this,prefix,keyValue,dsId,flag,items,choice);
		}
    }else{  
          var content = '<iframe  id="'+prefix+'_iframe" pre="'+prefix+'" funcId ="'+funcId+'"  scrolling="auto" frameborder="0"  src="'+url+'" style="width:100%;height:100%;min-width: 1248px;"></iframe>';     
          console.log(jq("#tabs")); 
          jq("#tabs").tabs('add',{   
              title:subtitle,    
              content:content,    
              closable:true
          });    
     }    
}



//生成界面的回调（如果存在tablib标签 则调用下面的方法）(在单录单界面item变为了回调函数)
function backFun(prefix,keyValue,dsId,flag,winitFunc,choice){
	// 找到录单窗口
	//(prefix,dsId,butnId,type,staticWebUrl,initFunc,ainitFunc,flag,keyValues)
	window.parent.document.getElementById(prefix+'_iframe').contentWindow._s_aws(prefix,dsId,dsId,choice,'',winitFunc,'_p_qcsx',flag,keyValue);
}
// 主明细界面的回调函数(在主明细界面item变为了回调函数)
function backFunM(prefix,keyValue,dsId,flag,winitFunc,choice){
	// 找到录单窗口
	window.parent.document.getElementById(prefix+'_iframe').contentWindow._m_aws(
			prefix, dsId, dsId, choice+';77', '', winitFunc, '_p_qcsx',keyValue,flag);
}
//主明细界面的回调函数(上下结构的主明细)
function backFunMt(prefix,keyValue,dsId,flag,winitFunc,choice){
	// 找到录单窗口
	window.parent.document.getElementById(prefix+'_iframe').contentWindow._t_aws(
			prefix, dsId, dsId, choice+';77', '', winitFunc, '_p_qcsx',keyValue,flag);
}
function backFunO(prefix,keyValue,dsId,flag,items){
	// 找到录单窗口
	window.parent.document.getElementById(prefix+'_iframe').contentWindow._o_mws(dsId,'',prefix,'','',keyValue,flag,items);
}


/**
 * 一些基础数据表中不需要一些按钮，所以将这些按钮隐藏（单录单）在双击或添加界面
 * @param data
 * @param dsId
 * @param prefix
 * @param keyValues
 * @return
 */
function _all_cbhiddenS(data,dsId,prefix,keyValues){
	$('#'+prefix+"_S_UBUTN a[code="+prefix+"_VERIFY_BUT]").hide(); // 审核按钮
	$('#'+prefix+"_S_UBUTN a[code="+prefix+"_APPROVAL_BUT]").hide();// 审批按钮
	$('#'+prefix+"_S_UBUTN a[id="+prefix+"_sp]").hide(); // 打印
	$('#'+prefix+"_S_UBUTN a[code="+prefix+"_DESTORY_BUT]").hide(); // 作废按钮
	if(dsId == "ds_bs_material1"){
		var newHeto = '合同号:';
		var clgg = "材料规格:";
		$('#'+prefix+'_A_ADATAL input[qucln = CL_STANDARD]').parent().prev().html(clgg);// 给材料规格这个列重新复制
		$('#'+prefix+'_A_ADATAL input[qucln = CL_STANDARD]').parent().prev().attr('class','name_td');// 给合同号重新赋class样式
		$('#'+prefix+'_A_ADATAL input[qucln = CL_STANDARD]').removeAttr('areq');// 添加required属性
		
		$('#'+prefix+'_A_ADATAL input[qucln = CL_HETONGHAO]').parent().prev().html(newHeto);// 给合同号这个列重新赋值
		$('#'+prefix+'_A_ADATAL input[qucln = CL_HETONGHAO]').parent().prev().attr('class','name_td');// 给合同号重新赋class样式
		$('#'+prefix+'_A_ADATAL input[qucln = CL_HETONGHAO]').removeAttr('areq');// 添加required属性
	}else if(dsId == "ds_bs_product1"){	//商品资料
		if($("#"+prefix+"_A_ADATAL input[qucln=H_ISBN]").length>0){
			$("#"+prefix+"_A_ADATAL input[qucln=H_ISBN]").bind("keyup",function(e){
				clearNotIsbn(e,this);
			});
		}
		if($("#"+prefix+"_A_ADATAL input[qucln=H_ISBN_FJ]").length>0){
			$("#"+prefix+"_A_ADATAL input[qucln=H_ISBN_FJ]").bind("keyup",function(e){
				clearNotFJM(e,this);
			});
		}
		$('#'+prefix+"_S_UBUTN a[code="+prefix+"_VERIFY_BUT]").show();
	}else if(dsId == "ds_bs_clients1"){   //客户资料
		//图片上传
		initMulFunc(data,dsId,prefix,keyValues,"");
		
		$('#cab_A_ADATAL').find('input[qucln=H_ID]').unbind('change');
		$('#cab_A_ADATAL').find('input[qucln=CARD_NO]').bind('change',function(){
			isBankNoNubmer(this);
		});
	}
}

//判断银行卡号不重复的问题
function isBankNoNubmer(obj){
	var selRows = $('#datalist_m').datagrid('getRows');
	var bankno1 = '';
	for ( var i = 0; i < selRows.length; i++) {
		var bankno = selRows[i].BANK_NO;
		if (bankno1 == null || bankno1 == '') {
			bankno1 = bankno;
		}else if (bankno1 ==  bankno) {
			$.messager.alert('温馨提示','银行卡号重复,请重新录入~');
			return;
		}
	}
}

 
/**
 * 主明细表中要隐藏按钮的方法（双击或添加界面）（主明细）
 * @param data
 * @param dsId
 * @param prefix
 * @param keyValues
 * @return
 */
function  _all_cbhiddenM(data,dsId,prefix,keyValues){
	var dsIds = dsId.split(';')[0];
	if(dsIds == 'ds_fx_clients_jslist1'){																		//对账结算单
		$('#'+prefix+'_addWinForm').find('input[qucln=CLIENT_ID]').unbind('change');
		$('#'+prefix+'_addWinForm').find('input[qucln=CLIENT_ID]').bind('change',function(){					// 给客户列绑定事件
			kelqje();
		}); 
		$('#'+prefix+"_M_UBUTN a[id="+prefix+"_SAVE_BUT]").attr('onclick','dzjsORSave(this)'); 					//给保存按钮重写事件
		$('#'+prefix+"_M_UBUTN a[code=rollBack]").attr('onclick','dzjsRollBack(this)'); 						//给返回按钮重写事件
		pdkpStatus();																							//判断生成开票按钮是否显示
	}else if(dsIds =='ds_fx_clients_hkplan1'){ 																	//回款计划
		$('#'+prefix+"_M_UBUTN a[id="+prefix+"_sp]").hide(); 													// 打印
	}else if(dsIds == 'ds_fx_xs_fee1'){ 																		//销售费用（活动）
	}else if(dsIds == 'ds_yz_cbhs1'){																			//成本核算单
		$('#'+prefix+"_M_UBUTN a[id="+prefix+"_SAVE_BUT]").attr('onclick','cbhsSave(this)');
		$('#'+prefix+"_M_UBUTN a[id="+prefix+"_VERIFY_BUT]").attr('onclick',"cbhs_desOrApply(this,'1')");
		$('#'+prefix+"_M_UBUTN a[id="+prefix+"_DESTORY_BUT]").attr('onclick',"cbhs_desOrApply(this,'0')");
	}else if(dsIds == 'ds_fx_charge1'){ 																		//发行客户收款单
		$('#'+prefix+"_M_UBUTN a[id="+prefix+"_SAVE_BUT]").attr('onclick','overRightSave(this)');
		$('#'+prefix+"_M_UBUTN a[code=rollBack]").attr('onclick','khskRollBack(this)'); 						//给返回按钮重写事件
	}else if(dsIds == 'ds_fx_invoice_kp1'){ 																	//发行开票申请单
		columnShow();																							//判断某些列的是否显示
	}else if(dsIds == 'ds_fx_xs1'){																				//发行销售退货
		$('#'+prefix+"_M_UBUTN a[id="+prefix+"_SAVE_BUT]").attr('onclick','common_save(this)');
		//重写返回按钮事件
		$('#'+prefix+"_M_UBUTN a[code=rollBack]").attr('onclick','xtcjRollBack(this)');
	}else if(dsIds == 'ds_fx_zt_book1'){ 																		//组套管理
		$('#'+prefix+"_M_UBUTN a[id="+prefix+"_DESTORY_BUT]").hide(); 											// 作废
		$('#'+prefix+"_M_UBUTN a[id="+prefix+"_sp]").hide(); 													// 打印
	}else if(dsIds == 'ds_yz_Reimburse1'){    //报销费用二期
		$('#'+prefix+"_M_UBUTN a[id="+prefix+"_SAVE_BUT]").attr('onclick','bxfSave(this)');
		$('#'+prefix+"_M_UBUTN a[id="+prefix+"_VERIFY_BUT]").attr('onclick',"bxf_desOrApply(this,'1')");
		$('#'+prefix+"_M_UBUTN a[id="+prefix+"_DESTORY_BUT]").attr('onclick',"bxf_desOrApply(this,'0')");
	}else if(dsIds =='ds_zc_authorcheck1'){
        $('#'+prefix+"_M_UBUTN a[id="+prefix+"_SAVE_BUT]").attr('onclick','zzSave(this)');
    }else if(dsIds =='ds_fx_clientsales1'){
        $('#'+prefix+"_M_UBUTN a[id="+prefix+"_SAVE_BUT]").attr('onclick','FCSave(this)');//客户实销上报（按日）
    }else if(dsIds =='ds_fx_MonthSX1'){
        $('#'+prefix+"_M_UBUTN a[id="+prefix+"_SAVE_BUT]").attr('onclick','FMSSave(this)');//客户实销上报（按月）
    }

}

/**
 * 一些基础数据表中不需要一些按钮，所以将这些按钮隐藏（单录单）在查询界面
 * @param dsId
 * @param prefix
 * @param keyValue
 * @return
 */
function _all_butns(dsId,prefix,keyValue){
	if(dsId == "ds_yz_sprk2"){
		$('#'+prefix+"_queryButn a[id="+prefix+"_ADD_BUT]").hide(); // 添加按钮
		$('#'+prefix+"_queryButn a[id="+prefix+"_commCopy]").hide(); // 复制按钮
		return;
	}else if(dsId == 'ds_bs_material1'){ // 材料信息维护
		$('#'+prefix+"_queryButn a[id="+prefix+"_commCopy]").hide(); // 复制按钮
	}
	//财务管理中 直接成本，编舞费用，报销费用，汇总摊销 四大模块中的添加和复制按钮隐藏
	else if(dsId=='ds_cw_cost11'||dsId=='ds_cw_cost12'||dsId=='ds_cw_cost13'||dsId=='ds_cw_cost14'){        
		$("#"+prefix+"_queryButn  a[id="+prefix+"_ADD_BUT]").hide();
		$("#"+prefix+"_queryButn  a[id="+prefix+"_commCopy]").hide();
	}
	else if(dsId == 'ds_cw_cost5'){		//作者版税
		$('#'+prefix+"_queryButn a[id="+prefix+"_ADD_BUT]").hide(); // 添加按钮
	}else if(dsId == 'ds_bs_comparison3'){		//编辑对照表ds_bs_publisher1
		$('#'+prefix+"_parentTabPanel a[id="+prefix+"_mb]").hide();
	}else if(dsId == 'ds_bs_publisher1'){		//出版社信息
		$('#'+prefix+"_parentTabPanel a[id="+prefix+"_mb]").hide();
	}else if(dsId == 'ds_bj_isbn_cip1'){  //新书资料
		$('#'+prefix+"_queryButn a[id="+prefix+"_ADD_BUT]").hide();
	}else if(dsId == 'ds_bj_ysqr1'){		//印数确认
		$('#'+prefix+"_queryButn a[id="+prefix+"_ADD_BUT]").hide(); // 添加按钮
	}else if(dsId == 'ds_bj_xt_shenhe1'){		//书稿三审
		$('#'+prefix+"_queryButn a[id="+prefix+"_ADD_BUT]").hide(); // 添加按钮
	}
	$('#'+prefix+"_parentTabPanel a[id="+prefix+"_mb]").hide();
	$('#'+prefix+'_DATALIST').datagrid({
		frozenColumns:[[]]
	});
}
/**
 * 主明细按钮隐藏在(查询界面)(主明细)
 * @param dsId
 * @param prefix
 * @param keyValue
 * @return
 */
function _zmx_butns(dsId,type,prefix){
	if(prefix == "bbg"){	//印刷进度
		$('#'+prefix+"_queryButnM a[id="+prefix+"_ADD_BUT]").hide(); // 添加按钮
		$('#'+prefix+"_queryButnM a[id="+prefix+"_commCopy]").hide(); //复制按钮
		return;
	}else if(prefix == 'bap'){ // 成本核算单
		$('#'+prefix+"_queryButnM a[id="+prefix+"_commCopy]").hide(); // 复制按钮
		$('#'+prefix+"_queryButnM a[id="+prefix+"_ADD_BUT]").hide(); // 添加按钮
	}else if(prefix == 'abn'){ //营销预算
		$('#'+prefix+"_queryButnM a[id="+prefix+"_ADD_BUT]").hide(); // 添加按钮
	}else if(prefix == 'pdm'){
		$('#'+prefix+"_queryButnM a[id="+prefix+"_commCopy]").hide(); // 复制按钮
	}else if(prefix == 'bxs'){   //报销费用二期
		$('#'+prefix+"_queryButnM a[id="+prefix+"_commCopy]").hide(); // 复制按钮
	}
}

// //////////////////////////////////我的任务双击事件结束///////////////////////////////////////////////////////////////////////////////////////
/**
 * 根据现成的数据出现窗口
 * @param prefix
 * @param dsId
 * @param butnIdkelqje
 * @param type
 * @param dataList
 * @return
 */
function _data_qw(prefix,dsId,butnId,type,ainitFunc,dataList,dgUrl,queryParams){
	var width = document.documentElement.clientWidth*0.97;
	var height = window.parent.innerHeight-270;
	if($('#'+prefix+'_DATA_WIN').length>0){
		$('#'+prefix+'_DATA_PARENT_PANEL').window('close');
		var obj = document.getElementById(prefix+"_DATA_WIN");
		$('#'+prefix+'_DATA_PARENT_PANEL').remove();
		document.body.removeChild(obj);
	}
	var div_box = document.createElement("DIV");
	div_box.id = prefix+"_DATA_WIN";
	div_box.height = 100;
	document.body.appendChild(div_box);
	$('#'+prefix+'_DATA_WIN').load(_m_url+'singlePages/genFun',
			{'dsId':dsId,'butnId':butnId,'type':type,'staticWebUrl':'','initFunc':'','jspWebUrl':'/model/general/datalistD'},
			function(){
				$.parser.parse('#'+prefix+'_DATA_DG_PANEL');
				$('#'+prefix+'_DATA_PARENT_PANEL').window({  
					width:document.documentElement.clientWidth,  
					height:document.documentElement.clientHeight,  
					draggable:false,
					top:'0',
					left:'0',
					modal:true,
					resizable:false,
					closable:false,
					collapsible:false,
					maximizable:false,
					minimizable:false
				});  
				$('#'+prefix+'_DATA_PARENT_PANEL').window('open');
				// 加载字段 变不可写 填充数据
				var divName = 'DATA_DATALIST';
				// 加载字段
				$.ajax({
					type:'post',
					url:_m_url+'framework/loadColumnsU',
					data:{'colId':dsId,'type':type},
					success:function(data){
						if(data==""){
							$.messager.alert('提示',"您长时间未操作，系统已经自动退出!，请重新登陆");
						}else{
							var options = jointDGColumn(data[0]);
							var fzClns = options.frozenColumns;
							options.frozenColumns = [[{field:'kk',checkbox:true}]];
							for(var i = 0; i < fzClns[0].length; i ++){
								options.frozenColumns[0].push(fzClns[0][i]);
							}
							//获取div的宽度和高度
							$('#'+prefix+'_DATA_DATALIST').datagrid({
								iconCls:'icon-save',
								pageNumber:1,
								url:dgUrl,
								queryParams:queryParams,
								height:height,
								width:width,
								striped: true,		
								collapsible:true,
								autoRowHeight: false,		
								sortOrder: 'desc',
								remoteSort: false,
								pageList:[300,500,1000],
								columns:options.columns,
								frozenColumns:options.frozenColumns,
								pagination:true,
								rownumbers:true,
								singleSelect:false,
								rowStyler:function(index,row){    
									return window.parent.getRowStyler(index,row,data[0]);
								},
								onRowContextMenu:function(e, rowIndex, rowData){// 右键菜单
								    $('#mm').menu('show', {
								        left:e.pageX,
								        top:e.pageY
								    });
								},
								onClickRow:function(rowIndex,rowData){
									//获取到currentIndex
									var currentIndex=$(this).attr("currentIndex");
									if(rowIndex!=currentIndex){
										var colnName=$(this).attr("colnName");
										$(this).datagrid("endEdit",currentIndex)
										$(this).datagrid("beginEdit",rowIndex);
										$(this).attr("currentIndex",rowIndex);
										var cRowStyle=$($($(this).datagrid("getEditor",{index:rowIndex,field:colnName}).target[0]).parent("td").parents("tr[datagrid-row-index]")[0]).attr("class");
										var amountObj=$($(this).datagrid("getEditor",{index:rowIndex,field:colnName}).target[0]).parent("td").find("#editablebox");
										//清空数量的值
										$($(this).datagrid("getEditor",{index:rowIndex,field:colnName}).target[0]).parent("td").find("input").val("");
										amountObj.focus();
										$($(this).datagrid("getEditor",{index:rowIndex,field:colnName}).target[0]).parent("td").find("#editablebox").css("background-color","#C9ECFE");
									}
								},
								onLoadSuccess:function(data){
									var colnName="H_AMOUNT";
									{if(dsId=='ds_bs_product2'||dsId=='ds_bs_product4'){
										colnName="AMOUNT";
									}
									if(data.rows.length>0)
										$(this).datagrid('beginEdit', 0);
										var ed =$(this).datagrid('getEditor', {index:0,field:colnName});
										if(ed!=null&&ed!=undefined){
											$(this).attr("colnName",colnName);
											$(this).attr("currentIndex",0);
											var amountObj=$($(this).datagrid("getEditor",{index:0,field:colnName}).target[0]).parent("td").find("#editablebox");
											$(amountObj).keydown(function() {
												$('#'+prefix+'_DATA_DATALIST').datagrid('selectRow',0);
											});
											$(amountObj).focus();
											$(amountObj).css("background-color","#C9ECFE");
										}else{
											console.log("===========如果该列表界面没有光标定位，那么请找到对应的数量列，并告诉开发配置");
										}
									}
								}
							});
							$('#'+prefix+'_DATA_DATALIST').datagrid("keyCtr_cp");       // 绑定datagrid 的键盘事件
							if(ainitFunc!='')eval(ainitFunc).call(this,prefix);
						}
					}
				});
			}
		);
}
/*******************************************************************************
 * 所有datagrid的绑定的键盘事件
 ******************************************************************************/
$.extend($.fn.datagrid.methods, {
	keyCtr_cp: function (jq) {
		return jq.each(function(){
			var grid = $(this);
			var j = -1; 
			var ed =null;
			var id=grid.attr("id");
			var prefix=grid.attr("prefix");		// 前缀
			var realdsid=grid.attr("realdsid");		
			if(realdsid==undefined||realdsid==null||realdsid==""||prefix==undefined||prefix==null||prefix==""){
				console.log("本界面界面的realdsid或者prefix配置不完成，输入快捷键不能用,请联系开发");
				return;
			}
			grid.datagrid('getPanel').panel('panel').attr('tabindex',1).bind('keydown',function (e) {
				switch (e.keyCode) {
				case 13:     				// enter(键盘的enter键)
					//触发确定事件
					$('a[code*=sure1]').click();
				case 16:     				// shift(键盘的shift键)
					break;
				case 38: 					// up(键盘的上键)
					var colnName=grid.attr("colnName");
					var index=grid.attr("currentIndex");
					if(colnName==null||index==null){
						console.log("请先把焦点定位其中的任意行，快捷上下键才能生效");
						return;
					}
					var allRows = grid.datagrid("getRows");
					grid.datagrid('endEdit',index);
					$(grid).datagrid('beginEdit',index);
					$(grid).datagrid('endEdit',index);
					if(allRows[index][colnName]==""||allRows[index][colnName]==null){
						grid.datagrid('unselectRow',index);
					}else{
						grid.datagrid('selectRow',index);
					}
					index=(parseInt(index)-1)<0?allRows.length-1:parseInt(index)-1;
					grid.attr("currentIndex",index);
					grid.datagrid('beginEdit',index);
					$($(grid).datagrid("getEditor",{index:index,field:colnName}).target[0]).parent("td").find("#editablebox").focus();
					$($(grid).datagrid("getEditor",{index:index,field:colnName}).target[0]).parent("td").find("#editablebox").css("background-color","#C9ECFE");
					return true;
				case 40: 					// down(键盘的下键)
					var colnName=grid.attr("colnName");
					var index=grid.attr("currentIndex");
					if(colnName==null||index==null){
						console.log("请先把焦点定位其中的任意行，快捷上下键才能生效");
						return;
					}
					var allRows = grid.datagrid("getRows");
					grid.datagrid('endEdit',index);
					$(grid).datagrid('beginEdit',index);
					$(grid).datagrid('endEdit',index);
					if(allRows[index][colnName]==""||allRows[index][colnName]==null){
						grid.datagrid('unselectRow',index);
					}else{
						grid.datagrid('selectRow',index);
					}
					index=(parseInt(index)+1>=allRows.length?0:parseInt(index)+1);
					grid.attr("currentIndex",index);
					grid.datagrid('beginEdit',index);
					var amountObj=$($(grid).datagrid("getEditor",{index:index,field:colnName}).target[0]).parent("td").find("#editablebox");
					$(amountObj).css("background-color","#C9ECFE");
					$(amountObj).keydown(function() {
						$(grid).datagrid('selectRow',index);
					});
					$(amountObj).focus();
					return true;
				}
			});
		});
	}
});




/****
 * 光标定位
 * @return
 */
function dataList_focus(divId){
	var alllRows=$("#"+divId).datagrid("getRows");
	if(alllRows.length>0){
		$("#"+divId).datagrid('beginEdit', 0);
		var ed =$("#"+divId).datagrid('getEditor', {index:0,field:"H_AMOUNT"});
		if(ed!=null&&ed!=undefined){
			$("#"+divId).datagrid('selectRow',0);
			$($("#"+divId).datagrid("getEditor",{index:0,field:"H_AMOUNT"}).target[0]).parent("td").find("#editablebox").focus();
		}
	}
}


/*******************************************************************************
 * 通用按钮的执行存储过程方法 开始
 ******************************************************************************/
// 或许批量（暂时不操作）
function execuButProc(obj){
	var flag = $(obj).attr('flag');// 判断是单据类型
	var buParams = {};
	var dataRows = new Array();
	buParams.dsid = $(obj).attr('dsid');
	buParams.code = $(obj).attr('id');
	if(flag == '1'){
	}else if(flag == '2'){
		var selRows = $('#'+$(obj).attr('pre')+'_DATALIST').datagrid('getSelections');
		if(!(selRows.length > 0)){
			$.messager.alert("提示信息","请选中一行或多行","info");
			return;
		}else{
			$.messager.confirm('提示','确定批量操作?', function(btn2){
				// 点击确定则保存,否则取消
			    if (btn2) {
			    	// 获取主键
			    	var pk = eval("window.parent."+$(obj).attr('dsid').split(";")[0]+"_pk");
			    	// 测试循环
					for(var i = 0; i < selRows.length; i++){
						dataRows[i] = {'root_id':selRows[i][pk]};
					}
					buParams.dataRows = dataRows;
					$.ajax({
						url:_m_url+'butpro/buts',
						type:'post',
						contentType: "application/json;charset=utf-8",
						dataType: "json",
						data:JSON.stringify(buParams),
						success:function(data){
							if(data.msg == 'success'){
								$.messager.alert("提示信息","成功操作"+data.count+"条记录");
							}else if(data.msg == 'fail'){
								$.messager.alert("提示信息","成功操作"+data.count+"条记录"+"[操作失败]"+data.info,"info");
							}else{
								$.messager.alert("错误信息","成功操作"+data.count+"条记录"+"[错误提示]"+data.info,"info");
							}
						}
					});
			    }
			});
		}
	}else if(flag == '3'){
		
	}
}


// 一个按钮执行的存储过程
function butnProFunc(obj){
	// 1.获取flag 判断是单录单还是主明细 1是单录单 2是主明细
	// 2.获取dsId 和 ButnCode
	// 3.获取主键名称
	// 4.根据flag 在指定的地方查找 主键值（djId）
	// 5.将这些参数做为一个buParams对象传入controller
	// 6.再根据controller返回执行的结果
	var flag = $(obj).attr('flag');// 判断是单据类型
	var pre = $(obj).attr('pre'); // 前缀
	var dsId = $(obj).attr('dsid'); // dsID
	var buParams = {};
	buParams.dsid = $(obj).attr('dsid'); // dsId
	buParams.code = $(obj).attr('code');  // Code
	var pk = eval("window.parent."+$(obj).attr('dsid').split(";")[0]+"_pk"); // 主键
	
	var djId =""; // 声明djId
	var pkStr ='';
	if(flag =='1'){// 单录单
		djId = $("#"+pre+"_A_ADATAL input[qucln="+pk+"]").val();
		pkStr = parsePKStr(pre+"_A_AFORM");
		
		// 判断单据有没有保存
		var formid=pre+"_A_ADATAL";
		var values=getFormJsons(formid);// 将form中的值转换为键值对
		if(values!=0){
			$.messager.show({title:"保存提示",msg:"亲,该单据尚未保存，请先保存数据!",showType:'slide',timeout: 2000,showSpeed:400});
			return;
		}
	}else if(flag =='2'){// 主明细
		djId = $("#"+pre+"_addWinTable input[qucln="+pk+"]").val();
		pkStr = parsePKStr(pre+"_addWinForm");
		// 判断单据有没有保存
		var formid = pre+"_addWinForm";
		var values=getFormJsons(formid);// 将form中的值转换为键值对
		var allRows =$('#'+pre+"_addItemDatagrid").datagrid('getRows');
		for(var i=0;i<allRows.length;i++){
			$('#'+pre+"_addItemDatagrid").datagrid('endEdit',i);
		}
		var changes=$('#'+pre+"_addItemDatagrid").datagrid('getChanges');
		if(values!=0||changes.length>0){
			$.messager.show({title:"保存提示",msg:"亲,该单据尚未保存，请先保存数据!",showType:'slide',timeout: 2000,showSpeed:400});
			return;
		}
	}else if(flag =='3'){ //成本核算单
		djId = $("#"+pre+"_addWinTable input[qucln="+pk+"]").val();
		pkStr = parsePKStr(pre+"_addWinTable");
		// 判断单据有没有保存
		var formid = pre+"_addWinTable";
		
		var values=getFormJsons(formid);// 将form中的值转换为键值对
		var m_changes = new Array();	
		//循环关闭每个标签中的datagrid的editor
		var divNames = "oneChengBen;twoChengBen;threeChengBen;fourChengBen";
		var oneName = divNames.split(";");
		for(var u=0;u<oneName.length;u++){
			var allRows =$('#'+oneName[u]).datagrid('getRows');
			for(var i=0;i<allRows.length;i++){
				$('#'+oneName[u]).datagrid('endEdit',i);
			}
			var chanRows = $('#'+oneName[u]).datagrid('getChanges'); 
			for(var i =0;i<chanRows.length;i++){
				m_changes.push(chanRows[i]);
			}
		}
		if(values!=0||m_changes.length>0){
			$.messager.show({title:"保存提示",msg:"亲,该单据尚未保存，请先保存数据!",showType:'slide',timeout: 2000,showSpeed:400});
			return;
		}
	}
	// 获取djId
	buParams.djId = djId; // djId
	
	
//
//	//记录客户的操作
//	$.ajax({
//		url:_m_url+'framework/recordOperateLog',  
//		type:'post',
//		data:{'dsId':$(obj).attr('dsId'),'operateName':"code_"+$(obj).attr('code')+"_djId_"+buParams.djId,"clickEvent":"function_butnProFunc"}, 
//		success:function(data){
//			console.log(data);
//		}
//	});
	
	$.ajax({
		url:_m_url+'butpro/butsPro',
		type:'post',
		contentType: "application/json;charset=utf-8",
		dataType: "json",
		async: false,
		data:JSON.stringify(buParams),
		success:function(data){
			if(data.msg == 'success'){
				if(data.info !=null && data.info != ""){
					$.messager.alert("提示信息",data.info);
				}else{
					$.messager.alert("提示信息","操作成功");
				}
				if(flag =="1"){
					endAppLoadDataS(dsId,pre,pkStr);
					refreshImg(dsId,pkStr,pre);
				}else if(flag == '2'){
					endAppLoadDataM(dsId,pre,pkStr);
					refreshImgM(dsId,pkStr,pre);
				}else if(flag == '3'){
					cbhsAppLoadDataM(dsId,pre,pkStr);
					refreshImgM(dsId,pkStr,pre);
				}
			}else if(data.msg == 'error'){
				if(data.info !=null && data.info != ""){
					$.messager.alert("提示信息","[操作失败]"+data.info,"info");
				}else{
					$.messager.alert("提示信息","操作失败");
				}
			} 
			return data;
		}
	});
}

//一个按钮执行的存储过程
function butnProFuncNoMessage(obj){
	//1.获取flag 判断是单录单还是主明细  1是单录单  2是主明细
	//2.获取dsId 和 ButnCode 
	//3.获取主键名称
	//4.根据flag 在指定的地方查找 主键值（djId）
	//5.将这些参数做为一个buParams对象传入controller
	//6.再根据controller返回执行的结果
	var flag = $(obj).attr('flag');//判断是单据类型
	var pre = $(obj).attr('pre'); //前缀
	var dsId = $(obj).attr('dsid'); //dsID
	var buParams = {};
	buParams.dsid = $(obj).attr('dsid'); //dsId 
	buParams.code = $(obj).attr('code');  //Code
	var pk = eval("window.parent."+$(obj).attr('dsid').split(";")[0]+"_pk"); //主键
	
	var djId =""; //声明djId
	var pkStr ='';
	if(flag =='1'){//单录单
		djId = $("#"+pre+"_A_ADATAL input[qucln="+pk+"]").val();
		pkStr = parsePKStr(pre+"_A_AFORM");
		
		//判断单据有没有保存
		var formid=pre+"_A_ADATAL";
		var values=getFormJsons(formid);//将form中的值转换为键值对
		if(values!=0){
			$.messager.show({title:"保存提示",msg:"亲,该单据尚未保存，请先保存数据!",showType:'slide',timeout: 2000,showSpeed:400});
			return;
		}
	}else if(flag =='2'){//主明细
		djId = $("#"+pre+"_addWinTable input[qucln="+pk+"]").val();
		pkStr = parsePKStr(pre+"_addWinForm");
		//判断单据有没有保存
		var formid = pre+"_addWinForm";
		var values=getFormJsons(formid);//将form中的值转换为键值对
		var allRows =$('#'+pre+"_addItemDatagrid").datagrid('getRows');
		for(var i=0;i<allRows.length;i++){
			$('#'+pre+"_addItemDatagrid").datagrid('endEdit',i);
		}
		var changes=$('#'+pre+"_addItemDatagrid").datagrid('getChanges');
		if(values!=0||changes.length>0){
			$.messager.show({title:"保存提示",msg:"亲,该单据尚未保存，请先保存数据!",showType:'slide',timeout: 2000,showSpeed:400});
			return;
		}
	}
	
	//获取djId
	buParams.djId = djId; //djId
	$.ajax({
		url:_m_url+'butpro/butsPro',
		type:'post',
		contentType: "application/json;charset=utf-8",
		dataType: "json",
		async:'false',//提交数据的时候，保证数据的同步
		data:JSON.stringify(buParams),
		success:function(data){
			if(data.msg == 'success'){
				if(data.info !=null && data.info != ""){
					$.messager.alert("提示信息",data.info);
				}else{
					//$.messager.alert("提示信息","操作成功");
				}
				if(flag =="1"){
					endAppLoadDataS(dsId,pre,pkStr);
					refreshImg(dsId,pkStr,pre);
				}else if(flag == '2'){
					endAppLoadDataM(dsId,pre,pkStr);
					refreshImgM(dsId,pkStr,pre);
				} 
				return data;
			}else if(data.msg == 'error'){
				if(data.info !=null && data.info != ""){
					$.messager.alert("提示信息","[操作失败]"+data.info,"info");
				}else{
					$.messager.alert("提示信息","操作失败");
				}
				return data;
			} 
		}
	});
}

/**
 * 一个按钮通用的执行过程（选中行）
 * @param obj
 * @return
 */
function fydFormulacal(obj){
	var pk = eval("window.parent."+$(obj).attr('dsid').split(";")[0]+"_pk"); // 主键
	var itempk = eval("window.parent."+$(obj).attr('dsid').split(";")[1]+"_pk"); // 明细主键
	var pre = $(obj).attr('pre');			//前缀
	var dsId = $(obj).attr('dsid');			// dsID
	var flag = $(obj).attr('flag');			//判断是单据类型
	var selRows = $('#'+pre+'_addItemDatagrid').datagrid('getSelections'); //获取选中的行
	var buParams = {};						//定义总的集合参数
	buParams.dsid = $(obj).attr('dsid'); // dsId
	buParams.code = $(obj).attr('code');  // Code
	//声明变量
	var djId =""; 		//声明djId
	var pkStr ='';		//主表主键的值
	if (flag =='1') {	//单表
		djId = $("#"+pre+"_A_ADATAL input[qucln="+pk+"]").val();
		pkStr = parsePKStr(pre+"_A_AFORM");
		buParams.djId = djId; //djId
		//判断单据有没有保存
		var formid=pre+"_A_ADATAL";
		var values=getFormJsons(formid);//将form中的值转换为键值对
		if(values!=0){
			$.messager.show({title:"保存提示",msg:"亲,该单据尚未保存，请先保存数据!",showType:'slide',timeout: 2000,showSpeed:400});
			return;
		}
	}else if(flag =='2'){//主明细
		if (selRows.length <=0) {
			$.messager.alert('提示',"请选中明细行，才能进行操作");
			return;
		}	
		var pkID = $("#"+pre+"_addWinTable input[qucln="+pk+"]").val();	//获取主表主键的值
		var itemID = ""; // 声明djId,多个ID 用逗号隔开
		var pkStr ='';
		for ( var i = 0; i < selRows.length; i++) {
			itemID += selRows[i][itempk] += ",";
		}
		var djId = pkID+";" +itemID;			//将主表主键和明细表主键拼接在一起（主表主键;明细表主键,明细表主键,明细表主键,....）
		var reg=/,$/gi; 
		buParams.djId=djId.replace(reg,"");		//去掉末尾的逗号

		//判断单据有没有保存
		var formid = pre+"_addWinForm";
		var values=getFormJsons(formid);//将form中的值转换为键值对
		var allRows =$('#'+pre+"_addItemDatagrid").datagrid('getRows');
		for(var i=0;i<allRows.length;i++){
			$('#'+pre+"_addItemDatagrid").datagrid('endEdit',i);
		}
		var changes=$('#'+pre+"_addItemDatagrid").datagrid('getChanges');
		if(values!=0||changes.length>0){
			$.messager.show({title:"保存提示",msg:"亲,该单据尚未保存，请先保存数据!",showType:'slide',timeout: 2000,showSpeed:400});
			return;
		}
	}
	$.ajax({
		url:_m_url+'butpro/butproSel',
		type:'post',
		contentType: "application/json;charset=utf-8",
		dataType: "json",
		async: false,
		data:JSON.stringify(buParams),
		success:function(data){
		if(data.msg == 'success'){
			if(data.info !=null && data.info != ""){
				$.messager.alert("提示信息",data.info);
			}else{
				$.messager.alert("提示信息","操作成功");
			}
			endAppLoadDataM(dsId,pre,pkStr);
			refreshImgM(dsId,pkStr,pre);
		}else if(data.msg == 'error'){
			if(data.info !=null && data.info != ""){
				$.messager.alert("提示信息","[操作失败]"+data.info,"info");
			}else{
				$.messager.alert("提示信息","操作失败");
			}
		} 
		return data;
	}
	});
}




/*******************************************************************************
 * 通用按钮的显示隐藏
 ******************************************************************************/
function comButn(dsId,dateRow,prefix,flag,keyValues){
	var dsIds = dsId.split(";");
	var temp = keyValues.split('-');
	var verify =""; 	//审核
	var destory="";	//作废
	var valueStr = temp[1];
	var formId = "";
	var pkVal="";
	if(flag == '1'){// 单录单
		formId=prefix+"_S_UBUTN";
		var pkStr = parsePKStr(prefix+"_A_AFORM");
		pkVal=pkStr.split("-")[1];
		//主键值为空代表是添加或者是复制页面
		if(typeof(pkVal)=='undefined'||pkVal==null||pkVal==""){
			verify="0";
			destory="0";
		}else{
			verify = dateRow.queryRow[0].IS_VERIFY;
			destory =dateRow.queryRow[0].IS_DESTROY;
		}
	}else if(flag == '2'){// 主明细
		formId = prefix+"_M_UBUTN";
		pkStr = parsePKStr(prefix+"_addWinForm");
		pkVal=pkStr.split("-")[1];
		if(typeof(pkVal)=='undefined'||pkVal==null||pkVal==""){
			verify="0";
			destory="0";
		}else{
			verify = dateRow.queryRow[0][0].IS_VERIFY;
			destory =dateRow.queryRow[0][0].IS_DESTROY;
		}
	}else if(flag == '3'){// 一对多
		formId = prefix+"_M_UBUTN";
		pkStr = parsePKStr(prefix+"_maddPEForm");
		pkVal=pkStr.split("-")[1];
		if(typeof(pkVal)=='undefined'||pkVal==null||pkVal==""){
			verify="0";
			destory="0";
		}else{
			verify = dateRow.queryRow[0][0].IS_VERIFY;
			destory =dateRow.queryRow[0][0].IS_DESTROY;
		}
	} 
	// 1.单据作废是所有按钮的状态
	if(destory == '1'){  // 作废 这是判断 如果是作废 让他变成还原 这里都是会进来的
		$('#'+formId+' a').linkbutton("disable");   // 这个是让那片按钮全部变成灰色的
		$("#" + prefix + "_itemButns a").linkbutton("disable");  // 明细界面的按钮不可写
		$("#" + prefix + "_MXInput input").attr("disabled","disabled");  // 明细界面的查询条件不可查
		$('#'+formId+" a[code=SUBMIT_BUT]").hide();// 提交按钮隐藏
		disResDiv(prefix);// 多条件查询不可点击
		// 功能按钮盒返回按钮在作废界面生效
		$('#'+formId+" a[id="+prefix+"_sac]").linkbutton("disable");
		$('#'+formId+" a[code=rollBack]").linkbutton("enable");
	}
	// 2.单据未作废是所有按钮的状态
	else{
		$('#'+formId+' a').linkbutton("enable");  // 让那些按钮都显示
		if(verify =='1'){  // 审核状态为1 说明审核或者审批完成
			// 审核完成的时候判断该单子是审批之后自动审核的单子还是直接审核的单子
			isShowApprove(dsIds[0],formId,prefix,pkVal);	//直接审核的单子可以作废，已经进入了审批流程，也就是已经完成了一审的单子是不可以作废的
			$('#'+formId+" a[code="+prefix+"_SAVE_BUT]").linkbutton("disable");  // 保存按钮
																					// 不可写
			$('#'+formId+" a[id="+prefix+"_sp]").menubutton("enable"); // 打印
			$('#'+formId+" a[id="+prefix+"_sac]").menubutton("enable");// 功能
			$('#'+formId+" a[code="+prefix+"_COPY_BUT]").linkbutton("enable");// 复制
			$("#" + prefix + "_itemButns a").linkbutton("disable");    // 明细界面的按钮不可写
			$("#" + prefix + "_MXInput input").attr("disabled","disabled");     // 明细界面的查询条件不可查
			disResDiv(prefix);// 批量设置按钮不可点击
		}else{
			// 未审核的时候判断改单子有没有注册审批
			isShowVerify(dsIds[0],formId,prefix,pkVal);
			$('#'+formId+" a[code="+prefix+"_SAVE_BUT]").linkbutton("enable");  // 保存按钮
			if(verify!=null&&verify!=0&&verify!=""&&verify!='execState.014'&&verify!='execState.012'){//
				$("#" + prefix + "_itemButns a").linkbutton("disable");    // 明细界面的按钮不可写
			}else{
				$("#" + prefix + "_itemButns a").linkbutton("enable");   // 明细界面的按钮可写
			}																	// 可写
			$('#'+formId+" a[id="+prefix+"_sp]").linkbutton("enable"); // 打印
			$('#'+formId+" a[id="+prefix+"_sac]").linkbutton("enable");// 功能
			$('#'+formId+" a[code="+prefix+"_COPY_BUT]").linkbutton("enable"); // 复制
			$("#" + prefix + "_MXInput input").removeAttr("disabled");     // 明细界面的查询条件可查
			enaResDiv(prefix);// 批量设置按钮起作用
		} 
	}
	$('#'+formId+' a').map(function(){
		var disStr = $(this).attr('linkDisabled');
		if(disStr == 'true'){
			$(this).attr('class','easyui-linkbutton l-btn l-btn-disabled');		
		}
	})
}

// 界面按钮都灰掉的方法
function allButnHide(dsId,dateRow,prefix,flag,keyValues){
	var formId = '';
	if(flag == '1'){// 单录单
		formId=prefix+"_S_UBUTN";
	}else if(flag == '2'){// 主明细
		formId = prefix+"_M_UBUTN";
	}
	$('#'+formId+' a').linkbutton("disable");   // 这个是让那片按钮全部变成灰色的
	$('#mb2').menubutton("disable");  
	$("#" + prefix + "_itemButns a").menubutton("disable");  // 明细界面的按钮不可写
	$("#" + prefix + "_MXInput input").attr("disabled","disabled");  // 明细界面的查询条件不可查
	$('#'+formId+" a[code=SUBMIT_BUT]").hide();// 提交按钮隐藏
	disResDiv(prefix);// 多条件查询不可点击
	$('#'+formId+" a[code=rollBack]").linkbutton("enable");   // 返回按钮
}
/*******************************************************************************
 * 1.未审核的时候判断该单子是审批之后自动审核的单子还是直接审核的单子
 ******************************************************************************/
function isShowVerify(dsId,formId,prefix,pkVal){
	// 得到该单据的最大审批级别
	$.ajax({
		type:'post',
		url:_m_url+'approve/getMaxAppleLevel',
		data:{'dsId':dsId},
		async:false,
		success:function(data){
			// 该单据没有注册审批流程,只有审核
			if(!data.flag){
				$('#'+formId+" a[code=APPROVE_BUT]").show(); // 审批按钮显示
				$('#'+formId+" a[code="+prefix+"_VERIFY_BUT]").linkbutton("enable"); // 审核按钮
																						// 可写
				$('#'+formId+" a[code=SUBMIT_BUT]").hide();// 提交按钮隐藏
				$('#'+formId+" a[code=APPROVE_BUT]").hide(); // 审批按钮隐藏
			}
			// 审批存在
			else{
				if(typeof(pkVal)=='undefined'||pkVal==null||pkVal==""){   // 添加页面或者是复制的新页面
				}else{
					// 判断该单据有没有生成审批的数据
					// 1.1、判断该单据在这之前有没有生成审批的单据,如果没有生成审批的单据那么，调用存储过程,生成该单据的审批的数据
					var list=getApproveList(pkVal)
					// 1.1.1如果审批数据不存在，那么当我点击申请审批的时候就生成审批数据
					if(list!=null&&list!=""&&list.length!=0){
						// 判断审批数据有没有流转
						$.ajax({
							type:'post',
							url:_m_url+'approve/isApproveFlow',
							data:{'djId':pkVal,"dsId":dsId},
							async:false,
							success:function(flag){
								if(flag==true){   // 已经生成了审批的单据，但是没有流转到审批的流程，作废按钮可写
									$("#"+formId+" a[code='"+prefix+"_DESTORY_BUT']").linkbutton("enable"); // 作废可写
								}else{    // 已经流转到了审批的流程，作废按钮会不可写
									$("#"+formId+" a[code='"+prefix+"_DESTORY_BUT']").linkbutton("disable"); // 作废不可写
								}
							}
						});
						$('#'+formId+" a[code=SUBMIT_BUT]").show(); // 提交按钮显示
						$('#'+formId+" a[code=SUBMIT_BUT]").linkbutton("disable");; // 提交按钮不可写
					}else{
						$('#'+formId+" a[code=SUBMIT_BUT]").show(); // 提交按钮显示
						$('#'+formId+" a[code=SUBMIT_BUT]").linkbutton("enable");; // 提交按钮
					}
				}
				$('#'+formId+" a[code="+prefix+"_VERIFY_BUT]").hide();// 审核按钮隐藏
				$('#'+formId+" a[code=APPROVE_BUT]").show();// 审批按钮显示
			}
		}
	});
}


/*******************************************************************************
 * 2.已经审核，审批完成的单据判断改单子有没有注册审批
 ******************************************************************************/
function isShowApprove(dsId,formId,prefix,pkVal){
	// 得到该单据的最大审批级别
	$.ajax({
		type:'post',
		url:_m_url+'approve/getMaxAppleLevel',
		data:{'dsId':dsId},
		async:false,
		success:function(data){
			// 该单据没有审批,只有审核
			if(!data.flag){
				$('#'+formId+" a[code="+prefix+"_VERIFY_BUT]").linkbutton("disable"); // 审核按钮
																						// 不可写
				$("#"+formId+" a[code='"+prefix+"_DESTORY_BUT']").linkbutton("enable"); // 作废可写
				$('#'+formId+" a[code=APPROVE_BUT]").hide();// 审批按钮隐藏
				$('#'+formId+" a[code=SUBMIT_BUT]").hide();// 提交按钮隐藏
			}
			/**
			 * *注册了审批，那么判断该单据在sys_approve有没有结果集 1.如果没有结果集，那么说明该单据是审核过的单子,作废按钮可写
			 * 2.如果有结果集，那么说明该单据是审批过得单子,作废按钮不可写
			 */
			else{
				$.ajax({
					type:"post",
					url:_m_url+"approve/loadApplyListByDjId",
					data:{"djId":pkVal,"dsId":dsId},
					async:false,
					success:function(data){
						if(data==null||data==""||data.size==0){
							$('#'+formId+" a[code="+prefix+"_VERIFY_BUT]").show();// 审核按钮显示并只读
							$('#'+formId+" a[code="+prefix+"_VERIFY_BUT]").linkbutton("disable"); // 审核按钮
																									// 不可写
							$('#'+formId+" a[code=APPROVE_BUT]").hide();// 审批按钮隐藏
							$('#'+formId+" a[code=SUBMIT_BUT]").hide();// 提交按钮隐藏
							$("#"+formId+" a[code='"+prefix+"_DESTORY_BUT']").linkbutton("enable"); // 作废可写
						}else{
							$('#'+formId+" a[code="+prefix+"_VERIFY_BUT]").hide();// 审核按钮隐藏
							$('#'+formId+" a[code=APPROVE_BUT]").show(); // 审批按钮显示
							$('#'+formId+" a[code=APPROVE_BUT]").linkbutton("enable"); // 审批可写
							$('#'+formId+" a[code=SUBMIT_BUT]").show(); // 提交按钮显示
							$('#'+formId+" a[code=SUBMIT_BUT]").linkbutton("disable");// 提交按钮不可写
							$("#"+formId+" a[code='"+prefix+"_DESTORY_BUT']").linkbutton("disable"); // 作废可写
						}
					}
				});
			}
		}
	});
}

/*******************************************************************************
 * 通用的打印
 ******************************************************************************/
function common_print(obj){
	var prefix=$(obj).attr("pre");
	var sflag=$(obj).attr("sflag");
	var flag=$(obj).attr("flag");
	var dsId=$(obj).attr("dsId");
	var name=$(obj).attr("code");
	var config=$(obj).attr("config");
	var keyVaules='';   // 保存主键和主键值
	var staticWebUrl='';
	var initFunc='';
	var ainitFunc='';
	var doubFunc='';
	var dsIds = dsId.split(';');
	var pfks = eval("window.parent."+dsIds[0]+"_pk"); // 主键
	var pkVal="";
	if(sflag =="s"){
		keyVaules = parsePKStr(prefix+"_A_AFORM"); 
		pkVal = $('#'+prefix+"_A_AFORM input[qucln = "+pfks+"]").val();  
	}else if(sflag == 'm'){
		keyVaules = parsePKStr(prefix+"_addWinForm");
		pkVal = $('#'+prefix+"_addWinForm input[qucln = "+pfks+"]").val();
	}else if(sflag == 'o'){
		keyVaules = parsePKStr(prefix+"_maddPEForm");
		pkVal = $('#'+prefix+"_maddPEForm input[qucln = "+pfks+"]").val();
	}
	if(pkVal ==null || pkVal == ""){
		$.messager.alert("提示","单据尚未保存，不需要打印！");
		return;
	}
	if(config==null||config=='undefined'){
		config="";
	}
	if(doubFunc != "" ){
		eval(doubFunc).call(this,selectRow);
	}else{
		if(sflag=='s' || sflag=='m'){// 单录单
			if(sflag=='m'){
				dsId =dsId.split(";")[0];
			}
	    window.open(_m_url+"printPages/CommonPrint?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes');
	    $.ajax({
			type:"post",
			url:_m_url+"printPages/CommonPrintCount?dsId="+dsId+"&pfks="+pfks+"&pkVal="+pkVal+"&type=0",
			data:{},
			async:false,
			success:function(data){
			 
			}
		});
		}else{
			alert("该界面属于特殊界面,没有开发打印功能");
		}
	}
}


/*******************************************************************************
 * 通用的打印//无预览
 ******************************************************************************/
function common_printforwinds(obj){
	var prefix=$(obj).attr("pre");
	var sflag=$(obj).attr("sflag");
	var flag=$(obj).attr("flag");
	var dsId=$(obj).attr("dsId");
	var name=$(obj).attr("code");
	var config=$(obj).attr("config");
	var keyVaules='';   // 保存主键和主键值
	var staticWebUrl='';
	var initFunc='';
	var ainitFunc='';
	var doubFunc='';
	var dsIds = dsId.split(';');
	var pfks = eval("window.parent."+dsIds[0]+"_pk"); // 主键
	var pkVal="";
	if(sflag =="s"){
		keyVaules = parsePKStr(prefix+"_A_AFORM"); 
		pkVal = $('#'+prefix+"_A_AFORM input[qucln = "+pfks+"]").val();  
	}else if(sflag == 'm'){
		keyVaules = parsePKStr(prefix+"_addWinForm");
		pkVal = $('#'+prefix+"_addWinForm input[qucln = "+pfks+"]").val();
	}else if(sflag == 'o'){
		keyVaules = parsePKStr(prefix+"_maddPEForm");
		pkVal = $('#'+prefix+"_maddPEForm input[qucln = "+pfks+"]").val();
	}
	if(pkVal ==null || pkVal == ""){
		$.messager.alert("提示","单据尚未保存，不需要打印！");
		return;
	}
	if(config==null||config=='undefined'){
		config="";
	}
	if(doubFunc != "" ){
		eval(doubFunc).call(this,selectRow);
	}else{
		if(sflag=='s' || sflag=='m'){// 单录单
			if(sflag=='m'){
				dsId =dsId.split(";")[0];
			}
		window.open(_m_url+"printPages/CommonPrint?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag);
		  $.ajax({
				type:"post",
				url:_m_url+"printPages/CommonPrintCount?dsId="+dsId+"&pfks="+pfks+"&pkVal="+pkVal+"&type=0",
				data:{},
				async:false,
				success:function(data){
				 
				}
			});
		}else{
			alert("该界面属于特殊界面,没有开发打印功能");
		}
	}
}


/**
 * 本方法是查询界面的打印按钮
 * 
 * @author xuzq
 * @param obj
 * @return
 */
function common_print_q(obj){
	var prefix=$(obj).attr("pre");
	var sflag="l";  // 固定的值
	var dsId=$(obj).attr("dsId");
	var name=$(obj).attr("name"); // 固定的为 qr
	var config=$(obj).attr("config");
	// 获取form表单
	var qConfigId = 'QUERYCLN';
	var comUseConf='commUse';
	var configStr = parseConfig(prefix+"_"+qConfigId);   // 多条件查询的拼接
	var useConf = parseConfig(prefix+"_"+comUseConf);   // 常用条件查询的拼接
	var allConfig=configStr+useConf;
	
	var staticWebUrl='';
	var initFunc='';
	var ainitFunc='';
	var doubFunc='';
	var dsIds = dsId.split(';');
	var pkVal="";
	var rowL = $('#'+prefix+'_DATALIST').datagrid('getRows');
	if(rowL ==null || !(rowL.length  >0)){
		$.messager.alert("提示","没有数据，不需要打印！");
		return;
	}
	window.open(_m_url+"printPages/CommonPrint?pkVal=&dsId="+dsId+"&name="+name+"&config="+allConfig+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes, resizable=yes,location=no, status=yes') 
}



/*******************************************************************************
 * 通用的上一条和下一条
 ******************************************************************************/
function upDownPage(obj){
	var sflag=$(obj).attr("sflag");   // 判断是单录单，主明细，还是一对多
	var flag=$(obj).attr("flag");
	var prefix=$(obj).attr("pre");
	var dsId=$(obj).attr("dsId");
	var isClear="false";			//是否清空当前页面文本框的值
	var keyVaules='';
	var formid="";
	var values ;
	var changes;  //更新修改行的数量
	var curDiv;
	if(sflag =="s"){   //单表
		formid=prefix+"_A_AFORM";
		values=getFormJsons(formid);
		keyVaules = parsePKStr(prefix+"_A_AFORM").split("-")[0];
	}else if(sflag == 'm'){    //主明细
		formid=prefix+"_addWinForm";
		values=getFormJsons(formid);    // 得到主表的数据
		if($("div[isMulTabs=true]").length==1){
			$("div[isMulTabs=true]").find("div[realdsid][prefix][dsid]").each(function(){
				changes = $(this).datagrid('getChanges');
			});
	 	}else if($("div[isMulTabs=true]").length==0){
	 		changes=$('#'+prefix+"_addItemDatagrid").datagrid('getChanges');   // 得到明细的数据
	 	}else {
	 		alert("明细弹框datagri获取有误")
	 	}
		keyVaules = parsePKStr(prefix+"_addWinForm").split("-")[0];
	}else if(sflag == 'o'){
		formid=prefix+"_maddPEForm";
		keyVaules = parsePKStr(formid).split("-")[0];
	}
	var allRows = $('#'+prefix+'_DATALIST').datagrid('getRows');
	var staticWebUrl='';
	var initFunc='';
	var ainitFunc='';
	var doubFunc='';
	currentPage=$('#'+prefix+'_DATALIST').datagrid('getPager').data("pagination").options.pageNumber; // 获取当前页
	totalCount=$('#'+prefix+'_DATALIST').datagrid('getPager').data("pagination").options.total;  // 获取datagrid
																									// 的总的行数
	pageSize=$('#'+prefix+'_DATALIST').datagrid('getPager').data("pagination").options.pageSize;  // 获取datagrid每页显示的条数
	totalPage=totalCount%pageSize==0?totalCount/pageSize:totalCount/pageSize+1;   // 获取datagrid的总的页数
	currentRowNo=parseInt(currentIndex+1)+(currentPage-1)*pageSize;   // 当前行在整个datagrid的行数
	$('#'+prefix+'_DATALIST').datagrid('unselectRow',currentIndex); // 取消选中行
	
	if((values !=0) || (values != 0 && changes != 0)){ // 如果数据发生改变，那么提示是否保存
		$.messager.confirm("操作提示", "数据已经改变，确认保存则点击保存按钮进行保存？", function (data) {
			if (data){
				return;
			}
			else{
				if(flag=='upPage'){  // 上一行
					if(currentRowNo!=1){   // 判断是不会第一页的第一条数据
						if(currentIndex==0){  // 如果是本页的第一条
							// 翻页
							$('#'+prefix+'_DATALIST').datagrid({
								pageNumber:currentPage-1
							});
							$.ajax({
								type:'post',
								url:_m_url+'framework/loadDataQ',  // 得到flowNode数据的路径
								data:{'dsId':dsId,'config':'',page:currentPage-1,'rows':pageSize}, 
								async:false,
								success:function(data){
									$('#'+prefix+'_DATALIST').datagrid('loadData',data);
								}
							});
							currentIndex=pageSize-1;
						}else{
							currentIndex-=1;
						}
						currentRowNo-=1;
						clearDatalistBuffer(formid);
					}else{
						$.messager.alert("提示信息","已经是第一条数据了","warn");
						currentIndex=0;
						return;
					}
				}else if(flag=='downPage'){  // 下一行
					if(currentRowNo!=totalCount){  // 判断是不是最后一页的最后一条
						if(currentIndex==pageSize-1){   // 如果本页的最后一条数据
							// 翻页
							$('#'+prefix+'_DATALIST').datagrid({
								pageNumber:currentPage+1
							});
							$.ajax({
								type:'post',
								url:_m_url+'framework/loadDataQ',  
								data:{'dsId':dsId,'config':'',page:currentPage+1,'rows':pageSize}, 
								async:false,
								success:function(data){
									$('#'+prefix+'_DATALIST').datagrid('loadData',data);
								}
							});
							currentIndex=0;
						}else{
							currentIndex+=1;
						}
						currentRowNo+=1;
						clearDatalistBuffer(formid);
					}else{
						$.messager.alert("提示信息","已经是最后一条数据了","warn");
						currentIndex=allRows.length-1;
						return;
					}
				}
				$('#'+prefix+'_DATALIST').datagrid('selectRow',currentIndex);  
				currentRow=$('#'+prefix+'_DATALIST').datagrid('getSelected');// 获取第一个选中的行
				var pkValStr = currentRow[keyVaules];
				keyVaules =(keyVaules+"-"+currentRow[keyVaules]);
				if(doubFunc != "" ){
					eval(doubFunc).call(this,currentRow);
				}else{
					$.ajax({
						type:'post',
						url:_m_url+'bjFlow/getinitFuncByDsId',  // 得到flowNode数据的路径
						data:{'dsId':dsId}, 
						async:false,
						success:function(data){
							initFunc=data.info;
						}
					});
					if(sflag=='s'){// 单录单
						_s_aws(prefix,dsId,dsId,'5',staticWebUrl,initFunc,ainitFunc,'2',keyVaules);
					}else if(sflag=='m'){
						_m_aws(prefix,dsId,dsId,'5;77',staticWebUrl,initFunc,ainitFunc,keyVaules,'2');
					}else if(sflag=='t'){
						_t_aws(prefix,dsId,dsId,'5;77',staticWebUrl,initFunc,ainitFunc,keyVaules,'2');
					}else if(sflag=='o'){
						var itemsS= $("#"+prefix+"_items").val();
						_o_mws(dsId,dsId,prefix,staticWebUrl,initFunc,keyVaules,'2',itemsS);
					}
				}
			}
		});
	}else{   // 单据没有发生改变
		// 如果不是第一页或者最后一页的时候才能加载下一页
		if(flag=='upPage'){  // 上一行
			if(currentRowNo!=1){   // 判断是不会第一页的第一条数据
				if(currentIndex==0){  // 如果是本页的第一条
					// 翻页
					$('#'+prefix+'_DATALIST').datagrid({
						pageNumber:currentPage-1
					});
					$.ajax({
						type:'post',
						url:_m_url+'framework/loadDataQ',  // 得到flowNode数据的路径
						data:{'dsId':dsId,'config':'',page:currentPage-1,'rows':pageSize}, 
						async:false,
						success:function(data){
							$('#'+prefix+'_DATALIST').datagrid('loadData',data);
						}
					});
					currentIndex=pageSize-1;
					
				}else{
					currentIndex-=1;
				}
				currentRowNo-=1;
				clearDatalistBuffer(formid);
			}else{
				$.messager.alert("提示信息","已经是第一条数据了","warn");
				currentIndex=0;
				return;
			}
		}else if(flag=='downPage'){  // 下一行
			if(currentRowNo!=totalCount){  // 判断是不是最后一页的最后一条
				if(currentIndex==pageSize-1){   // 如果本页的最后一条数据
					// 翻页
					$('#'+prefix+'_DATALIST').datagrid({
						pageNumber:currentPage+1
					});
					$.ajax({
						type:'post',
						url:_m_url+'framework/loadDataQ',  // 得到flowNode数据的路径
						data:{'dsId':dsId,'config':'',page:currentPage+1,'rows':pageSize}, 
						async:false,
						success:function(data){
							$('#'+prefix+'_DATALIST').datagrid('loadData',data);
						}
					});
					currentIndex=0;
				}else{
					currentIndex+=1;
				}
				currentRowNo+=1;
				clearDatalistBuffer(formid);
			}else{
				$.messager.alert("提示信息","已经是最后一条数据了","warn");
				currentIndex=allRows.length-1;
				return;
			}
		}
		$('#'+prefix+'_DATALIST').datagrid('selectRow',currentIndex);
		currentRow=$('#'+prefix+'_DATALIST').datagrid('getSelected');// 获取第一个选中的行
		var pkVal = currentRow[keyVaules];
		keyVaules =(keyVaules+"-"+currentRow[keyVaules]);
		if(doubFunc != "" ){
			eval(doubFunc).call(this,currentRow);
		}else{
			$.ajax({
				type:'post',
				url:_m_url+'bjFlow/getinitFuncByDsId',  // 得到flowNode数据的路径
				data:{'dsId':dsId}, 
				async:false,
				success:function(data){
					initFunc=data.info;
				}
			});
			if(sflag=='s'){// 单录单
				_s_aws(prefix,dsId,dsId,'5',staticWebUrl,initFunc,ainitFunc,'2',keyVaules);
			}else if(sflag=='m'){
				if($("div[isMulTabs=true]").length==1){
					_c_aws(prefix,dsId,dsId.split(";")[0],'5;77',staticWebUrl,initFunc,ainitFunc,keyVaules,'2')   //成本核算单一对多
				}else{
					_m_aws(prefix,dsId,dsId,'5;77',staticWebUrl,initFunc,ainitFunc,keyVaules,'2');
				}
			}else if(sflag=='t'){
				_t_aws(prefix,dsId,dsId,'5;77',staticWebUrl,initFunc,ainitFunc,keyVaules,'2');
			}else if(sflag=='o'){
				var itemsS= $("#"+prefix+"_items").val();
				_o_mws(dsId,dsId,prefix,staticWebUrl,initFunc,keyVaules,'2',itemsS);
			}
		}
	}
}



//清楚页面上所有的弹框缓存
function clearDatalistBuffer(formId){
	$("#"+formId+" input[eletype=datalist]").map(function(){
		if($(this).parent().find("#light").length>0){
			$(this).parent().find("#light").remove();
			$(this).parent().find("#fade").remove();
		}
	})
}



///****
// * 刷新按钮排序的方法
// * @return
// */
//function refreshButnOrder(prefix,divName){
//	var orderNums=new Array();
//	var newOrder=new Array();
//	var butnsNos=$("#"+divName).find("a[order!=''][order!=undefined][code!='rollBack'][code!="+prefix+"_SAVE_BUT]");
//	$(butnsNos).map(function(){
//		orderNums.push(parseInt($(this).attr("order")));
//	});
//	newOrder=unique(orderNums);
//	newOrder.sort(function(a,b){return a>b?1:-1});//从小到大排序
//	for(var i=newOrder.length-1;i>=0;i--){
//		var tempButns=$("#"+divName).find("a[order="+newOrder[i]+"]");
//		$("#"+divName).find("a[order="+newOrder[i]+"][code!='rollBack'][code!="+prefix+"_SAVE_BUT]").remove();
//		$("#"+divName).prepend(tempButns);
//	}
//}


/*******************************************************************************
 * 返回按钮关闭当前的窗口
 */
function closePanel(obj){
	var closeFlag=true;   // 返回false就取消关闭
	var prefix=$(obj).attr("pre");
	var sflag=$(obj).attr("sflag");
	var keyVaules_s = parsePKStr(prefix+"_A_AFORM");//单表的表单Id
	var keyVaules_m = parsePKStr(prefix+"_addWinForm");//主明细的表单Id
	var keyVaules_o = parsePKStr(prefix+"_maddPEForm");
	//返回是判断保存按钮是否生效，如果不生效，那么保存的时候无需判断是否保存
	var saveObj=$("a[code="+prefix+"_SAVE_BUT]");
	if(saveObj.length>0){
		if($(saveObj).linkbutton("options").disabled==true){
			if(sflag=='s'){
				$('#'+prefix+'_a_parentPanel').window('close'); 
			}else if(sflag=='m'){
				$('#'+prefix+'_m_parentPanel').window('close');  
			}
			else if(sflag=='o'){
				$('#'+prefix+'_o_mparentPanel').window('close');			
			}
			else if(sflag=='g'){
				$('#'+prefix+'_GEN_PARENT_PANEL').window('close');
			}
			else if(sflag=='d'){
				$('#'+prefix+'_DATA_PARENT_PANEL').window('close');
			}
			return;
		}
	}
	if(sflag=='s'){     // 单录单
		// 判断是否是正在录单状态
		// 1.判断单据是否有主键 2.判断单据是否修改
		var s_key=keyVaules_s.split("-")[0];
		var s_val=keyVaules_s.split("-")[1];
		if(typeof(s_val)=='undefined'||s_val==""||s_val==undefined||s_val=='undefined'){   // 添加页面
			$.messager.confirm("操作提示", "数据已经改变，您确认保存吗？", function (data) {
				if (data){
					$(obj).attr("flag","1");
					$(obj).attr("oflag","1");
					$(obj).attr("sou","1");
					$(obj).attr("isBack","true")
					common_save(obj);  // 确认按钮调用保存事件
					closeFlag=false;
				}else{
					$('#'+prefix+'_a_parentPanel').window('close');  // 取消直接关闭
				}
			});
		}else{    // 详情页面
			// 遍历页面所有元素判断是否有元素发生改变
			var values=getFormJsons(prefix+"_A_AFORM");
			if(values==0){
				$('#'+prefix+'_a_parentPanel').window('close');  // 没有修改表单任何元素的时候直接关闭
			}else{   // 有修改元素的时候
				$.messager.confirm("操作提示", "数据已经改变，您确认保存吗？", function (data) {
					if (data){
						$(obj).attr("flag","1");
						$(obj).attr("oflag","1");
						$(obj).attr("sou","2");
						$(obj).attr("isBack","true")
						common_save(obj);  // 确认按钮调用保存事件
						closeFlag=false;
					}else{
						$('#'+prefix+'_a_parentPanel').window('close');  // 取消直接关闭
					}
				});
			}
		}
	}else if(sflag=='m'){    // 主明细
		var m_key=keyVaules_m.split("-")[0];
		var m_val=keyVaules_m.split("-")[1];
		if(typeof(m_val)=='undefined'||m_val==""||m_val==undefined||m_val=='undefined'){   // 添加页面
			$.messager.confirm("操作提示", "数据已经改变，您确认保存吗？", function (data) {
				if (data){
					$(obj).attr("flag","1");
					$(obj).attr("oflag","1");
					$(obj).attr("sou","1");
					$(obj).attr("isBack","true")
					common_save(obj);  // 确认按钮调用保存事件
					closeFlag=false;
				}else{
					$('#'+prefix+'_m_parentPanel').window('close');  // 取消直接关闭
				}
			});
		}else{    // 详情页面
			// 遍历页面所有元素判断是否有元素发生改变
			var values=getFormJsons(prefix+"_addWinForm");    // 得到主表的数据
			var changes=$('#'+prefix+"_addItemDatagrid").datagrid('getChanges');   // 得到明细的数据
			if(values==0&&changes==0){
				$('#'+prefix+'_m_parentPanel').window('close');  // 没有修改表单任何元素的时候直接关闭
			}else{   // 有修改元素的时候
				$.messager.confirm("操作提示", "数据已经改变，您确认保存吗？", function (data) {
					if (data){
						$(obj).attr("flag","1");
						$(obj).attr("oflag","1");
						$(obj).attr("sou","2");
						$(obj).attr("isBack","true")
						common_save(obj);  // 确认按钮调用保存事件
						closeFlag=false;
					}else{
						$('#'+prefix+'_m_parentPanel').window('close');  // 取消直接关闭
					}
				});
			}
		}
	}else if(sflag=='o'){    // 一对多
		var o_key=keyVaules_o.split("-")[0];
		var o_val=keyVaules_o.split("-")[1];
		$('#'+prefix+'_o_mparentPanel').window('close');
	}else if(sflag == 'g'){
		$('#'+prefix+'_GEN_PARENT_PANEL').window('close');
	}else if(sflag='d'){
		$('#'+prefix+'_DATA_PARENT_PANEL').window('close');
	}
}


/*******************************************************************************
 * 重置时清除表单所有的条件(排除默认条件，因为默认条件是不用重置的)
 */
function reset(obj){
	var dsId=$(obj).attr("dsid").split(";")[0];
	var prefix=$(obj).attr("pre");
	// 1.重置的时候,先清除所有的查询条件和datagrid数据的数据
	$('#'+prefix+'_DATALIST').datagrid('loadData',{total:0,rows:[]}); 
	
	$("#"+prefix+"_config input").each(function(){
		$(this).val("");
	});
	$("#"+prefix+"_commUse input").each(function(){
		$(this).val("");
	});
	$("#"+prefix+"_config select").each(function(){
		$(this).find("option:selected").attr("selected",false);
	});
	$("#"+prefix+"_commUse select").each(function(){
		$(this).find("option:selected").attr("selected",false);
	});
	$("#"+prefix+"_config textarea").each(function(){
		$(this).val("");
	});
	$("#"+prefix+"_commUse textarea").each(function(){
		$(this).val("");
	});
	// 2.重新加载条件多条件查询的默认值和默认查询条件的默认值
	var pDivNames=new Array();
	pDivNames[0]=prefix+"_config";	// 多条件查询界面
	pDivNames[1]=prefix+"_commUse";	// 常用查询条件页面
	loadDefaultData(pDivNames,dsId,"2","0");
}



/***
 * 批量审核
 * @param obj
 * @return
 */
function all_PLCZButn(obj){
	var flag = $(obj).attr('flag');// 判断是单据类型
	var buParams = {};
	buParams.dsid = $(obj).attr('dsid');
	buParams.code = $(obj).attr('code');	
	buParams.prefix=$(obj).attr('pre');	
	var djId='';
	var selRows = $('#'+$(obj).attr('pre')+'_DATALIST').datagrid('getSelections');
	if(!(selRows.length > 0)){
		$.messager.alert("提示信息","请选中一行或多行","info");
		return;
	}else if(selRows.length > 300){
        $.messager.alert("提示信息","批量操作最多一次操作300条数据!!","info");
        return;
    }else{
		$.messager.confirm('提示','确定批量审核操作?', function(ispl){
//			//记录客户的操作
//			$.ajax({
//				url:_m_url+'framework/recordOperateLog',
//				type:'post',
//				data:{'dsId':$(obj).attr('dsid'),'operateName':"piliangshenghhe","clickEvent":"function_all_PLCZButn"}, 
//				success:function(data){
//					console.log(data);
//				}
//			});
			// 点击确定则保存,否则取消
		    if (ispl) {
		    	// 获取主键
		    	var pk = eval("window.parent."+$(obj).attr('dsid').split(";")[0]+"_pk");
		    	// 测试循环
				for(var i = 0; i < selRows.length; i++){
					djId += selRows[i][pk];
					if(i < selRows.length-1){
						djId +=';';
					}
				}
				buParams.djId = djId;
				$.ajax({
					url:_m_url+'butpro/butsPLVerify',
					type:'post',
					contentType: "application/json;charset=utf-8",
					dataType: "json",
					async:false,
					data:JSON.stringify(buParams),
					success:function(data){
						if(data.msg == 'success'){
							$.messager.alert("提示信息",data.info);
						}else if(data.msg == 'fail'){
							$.messager.alert("提示信息",data.info);
						}else{
							$.messager.alert("错误信息",data.info);
						}
					}
				});
		    }
		});
	}
}

/***
 * 批量入库
 * @param obj
 * @return
 */
function all_PLRKButn(obj){
	var flag = $(obj).attr('flag');// 判断是单据类型
	var buParams = {};
	buParams.dsid = $(obj).attr('dsid');
	buParams.code = $(obj).attr('code');	
	buParams.prefix=$(obj).attr('pre');	
	var djId='';
	var selRows = $('#'+$(obj).attr('pre')+'_DATALIST').datagrid('getSelections');
	if(!(selRows.length > 0)){
		$.messager.alert("提示信息","请选中一行或多行","info");
		return;
	}else if(selRows.length > 300){
        $.messager.alert("提示信息","批量操作最多一次操作300条数据!!","info");
        return;
    }else{
		$.messager.confirm('提示','确定批量入库操作?', function(ispl){
			// 点击确定则保存,否则取消
		    if (ispl) {
		    	// 获取主键
		    	var pk = eval("window.parent."+$(obj).attr('dsid').split(";")[0]+"_pk");
		    	// 测试循环
				for(var i = 0; i < selRows.length; i++){
					djId += selRows[i][pk];
					if(i < selRows.length-1){
						djId +=';';
					}
				}
				buParams.djId = djId;
				$.ajax({
					url:_m_url+'butpro/butsPLInStock',
					type:'post',
					contentType: "application/json;charset=utf-8",
					dataType: "json",
					data:JSON.stringify(buParams),
					success:function(data){
						if(data.msg == 'success'){
							$.messager.alert("提示信息",data.info);
						}else if(data.msg == 'fail'){
							$.messager.alert("提示信息",data.info);
						}else{
							$.messager.alert("错误信息",data.info);
						}
					}
				});
		    }
		});
	}
}



/***
 * 批量出库
 * @param obj
 * @return
 */
function all_PLCKButn(obj){
	var flag = $(obj).attr('flag');// 判断是单据类型
	var buParams = {};
	buParams.dsid = $(obj).attr('dsid');
	buParams.code = $(obj).attr('code');	
	buParams.prefix=$(obj).attr('pre');	
	var djId='';
	var selRows = $('#'+$(obj).attr('pre')+'_DATALIST').datagrid('getSelections');
	if(!(selRows.length > 0)){
		$.messager.alert("提示信息","请选中一行或多行","info");
		return;
	}else if(selRows.length > 300){
        $.messager.alert("提示信息","批量操作最多一次操作300条数据!!","info");
        return;
    }else{
		$.messager.confirm('提示','确定批量出库操作?', function(ispl){
			
//			//记录客户的操作
//			$.ajax({
//				url:_m_url+'framework/recordOperateLog',
//				type:'post',
//				data:{'dsId':$(obj).attr('dsid'),'operateName':"piliangchuku","clickEvent":"function_all_PLCKButn"}, 
//				success:function(data){
//					console.log(data);
//				}
//			});
//			
			// 点击确定则保存,否则取消
		    if (ispl) {
		    	// 获取主键
		    	var pk = eval("window.parent."+$(obj).attr('dsid').split(";")[0]+"_pk");
		    	// 测试循环
				for(var i = 0; i < selRows.length; i++){
					djId += selRows[i][pk];
					if(i < selRows.length-1){
						djId +=';';
					}
				}
				buParams.djId = djId;
				$.ajax({
					url:_m_url+'butpro/butsPLOutStock',
					type:'post',
					async:false,
					contentType: "application/json;charset=utf-8",
					dataType: "json",
					data:JSON.stringify(buParams),
					success:function(data){
						if(data.msg == 'success'){
							$.messager.alert("提示信息",data.info);
						}else if(data.msg == 'fail'){
							$.messager.alert("提示信息",data.info);
						}else{
							$.messager.alert("错误信息",data.info);
						}
					}
				});
		    }
		});
	}
}




//导出excel
function all_DCEXCButn(obj){
	var dsId = $(obj).attr('dsid');  // 获取dsId
	var prefix = $(obj).attr('pre'); // 获取前缀
	var comUseConf='commUse';
	var qConfigId = 'QUERYCLN';
	var configStr = parseConfig(prefix+"_"+trim(qConfigId));
	var useConf = '';
	var dsId = dsId.split(';')[0];   
	var allConfig=configStr+useConf;

	var selectTab="";
	var dgDiv="";
	var subdsId="";
	var subpre="";
	var selRows="";
	var id="";
	//判断是否有勾选
	if($("div[isMulTabs=true]").length>0){
		selectTab=$("div[isMulTabs=true]").tabs('getSelected');
		 dgDiv=$(selectTab).find($("div[realdsid][prefix][id]"));
		 subdsId=$(dgDiv).attr('realdsid');
		 subpre=$(dgDiv).attr('prefix');
		 id=$(dgDiv).attr('id');
	}else{
		subpre=prefix;
		subdsId=dsId;
	}
     selRows = $('#'+subpre+'_DATALIST').datagrid('getSelections');
    if(selRows.length>0){
    	 $.ajax({
				type:"post",
				url:_m_url+"printPages/gxdcadd",
				data:{"pkVal":JSON.stringify(selRows)},
				async:false,
				success:function(data){
			    	 location.href=_m_url+"printPages/gxdc?dsId="+subdsId,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';	 
				}
			});
    	 return;
    } 

    	
    	 
	
	
	//换取当前选中tab下面的datagrid 
	//报表的统计
	if($("div[isMulTabs=true]").length>0){
		var selectTab=$("div[isMulTabs=true]").tabs('getSelected');
		if(selectTab!=null){
			var dgDiv = $(selectTab).find($("div[realdsid][prefix]"));
			dsId = $(dgDiv).attr('realdsid');
		}
		window.location.href=_m_url+'singlePages/commDCExcel?dsId='+dsId+'&config='+encodeURI(encodeURI(allConfig))+"&isRep=true"+"&isTotal=true";
	}
	//列表界面的统计
	else{
		window.location.href=_m_url+'singlePages/commDCExcel?dsId='+dsId+'&config='+encodeURI(encodeURI(allConfig))+"&isTotal=true";
	}
}




/*******************************************************************************
 * 批量打印
 * 
 * @param obj
 * @return
 */
function all_PRINTButn(obj){
	var dsId = $(obj).attr('dsid');// 获取dsId
	var prefix = $(obj).attr('pre');// 获取前缀
	var sflag=$(obj).attr("sflag");// 获取单据类型
	var selRows = $('#'+prefix+'_DATALIST').datagrid('getSelections');
	var config=$(obj).attr("config");
	if(config==null||config=='undefined'){
			config="";
		}
	var pfks = null;
	if(!(selRows.length > 0)){
		$.messager.alert("提示信息","请选中一行或多行","info");
		return;
	}else{
		 if(sflag == 'm'){
			 var dsIds = dsId.split(';');
			  pfks = eval("window.parent."+dsIds[0]+"_pk");
		 }
		 else if(sflag == 's'){
			 pfks = eval("window.parent."+dsId+"_pk");
	   	 }
		 else{
			 $.messager.alert("提示信息","该单据为特殊单据,批量打印待开发","info");
				return;
		 }
		 var LODOP = getLodop();
		  if(LODOP == null || LODOP == undefined){
			  $.messager.alert("提示","打印插件未安装,请关闭所有浏览器,安装插件后重试!");
				 
		  }
		 var data_="";
		 LODOP.PRINT_INIT("单据批量打印");
		 LODOP.SET_SHOW_MODE("NP_NO_RESULT",true);
		 var va =  LODOP.GET_VALUE('PRINTED_TIMES',0);
		 for(var i=0;i<selRows.length;i++){
			  var obj = eval(selRows[i]);
			  var pkVal = obj[pfks];
			  $.ajax({
					type:"post",
					url:_m_url+"printPages/CommonPrint?pkVal="+pkVal+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,
					data:{},
					async:false,
					success:function(data){
						 LODOP.SET_PRINT_MODE('PRINT_PAGE_PERCENT',"Auto-Width");
						 // 设置默认打印机
						 var b = LODOP.SET_PRINT_MODE("WINDOW_DEFPRINTER","Foxit Reader PDF Printer");
					     // var b1=
							// LODOP.SET_PRINT_MODE("WINDOW_DEFPAGESIZE:-1","A3");
						// data_ += data+"<p
						// style='page-break-after:always'>5556666</p>";
						 LODOP.ADD_PRINT_HTML(0,0,"100%","100%",data);
						 LODOP.NEWPAGE();
					}
				});
		 }
		// 直接打印或预览打印
		 LODOP.PREVIEW();
		 var vb =  LODOP.GET_VALUE('PRINTED_TIMES',0);
		 if(va != vb){
			 console.log("disd:"+dsId);
				var key = eval("window.parent."+dsId.split(';')[0]+"_pk")
				console.log(key);
				var valStr = "";
				for(var i in selRows){
					valStr += "'"+selRows[i][key]+"',";
				}
			  $.ajax({
					type:"post",
					url:_m_url+"printPages/CommonPrintCount?key="+key+"&valStr="+valStr+"&dsId="+dsId.split(';')[0]+"&type=1",
					data:{},
					async:false,
					success:function(data){
					}
				});	
			}
	}
}

/*******************************************************************************
 * 批量打印
 * @param obj
 * @return
 */
function all_PRINTButns(obj){
    var dsId = $(obj).attr('dsid');// 获取dsId
    var prefix = $(obj).attr('pre');// 获取前缀
    var sflag=$(obj).attr("sflag");// 获取单据类型
    var name=$(obj).attr("code");
    var selRows = $('#'+prefix+'_DATALIST').datagrid('getSelections');
    var config=$(obj).attr("config");
    if(config==null||config=='undefined'){
        config="";
    }
    var pfks = null;
    if(!(selRows.length > 0)){
        $.messager.alert("提示信息","请选中一行或多行","info");
        return;
    }else{
        if(sflag == 'm'){
            var dsIds = dsId.split(';');
            pfks = eval("window.parent."+dsIds[0]+"_pk");
        }
        else if(sflag == 's'){
            pfks = eval("window.parent."+dsId+"_pk");
        }
        else{
            $.messager.alert("提示信息","该单据为特殊单据,批量打印待开发","info");
            return;
        }
        var pkVal='';
        for(var i=0;i<selRows.length;i++){
            var obj = eval(selRows[i]);
            if(i==0){
                pkVal=obj[pfks];
            }else{
                pkVal= pkVal+","+obj[pfks];
            }
        }

        window.open(_m_url+"printPages/CommonPrinttoPL?pkVals="+pkVal+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag+"&pfks="+pfks);
        var key = eval("window.parent."+dsId.split(';')[0]+"_pk")
        console.log(key);
        var valStr = "";
        for(var i in selRows){
            valStr += "'"+selRows[i][key]+"',";
        }
        $.ajax({
            type:"post",
            url:_m_url+"printPages/CommonPrintCount?key="+key+"&valStr="+valStr+"&dsId="+dsId.split(';')[0]+"&type=1",
            data:{},
            async:false,
            success:function(data){

            }
        });
    }
}









function commMxInputFE(obj){
	$(obj).css("background-color","#c9ecfe");
	
}
function commMxInputBE(obj){
	$(obj).css("background-color","#ffffff");
}


// 根据dsID和前缀，返回写在明细界面的条件
function returnConfig(dsId,prefix){
    if(dsId=='ds_fx_xs_fee_item1')
    {
        return;
    }
        var config = "";
        var config1 = "书号:&nbsp;<input type='text' style=\"border:1px solid #CCCCCC;\"  onfocus=\"commMxInputFE(this);\"  onblur=\"commMxInputBE(this);\"   onkeydown= \"if(event.keyCode==13){enterQuery('"+prefix+"',0,this)}\" name='H_ISBN' id='"+prefix+"_proId'/>&nbsp;&nbsp;&nbsp; "+
            "商品名称:&nbsp;<input type='text' style=\"border:1px solid #CCCCCC;\"  name='H_NAME'onfocus=\"commMxInputFE(this);\"   onblur=\"commMxInputBE(this);\"  onkeydown= \"if(event.keyCode==13){enterQuery('"+prefix+"',2,this)}\" id='"+prefix+"_HName'/>&nbsp;&nbsp;&nbsp;"+
            "商品谐音:&nbsp;<input type='text' style=\"border:1px solid #CCCCCC;\"  name='H_NAME' onfocus=\"commMxInputFE(this);\"   onblur=\"commMxInputBE(this);\"  onkeydown= \"if(event.keyCode==13){enterQuery('"+prefix+"',1,this)}\" id='"+prefix+"_proName'/>";
        var config2 = "材料谐音1:&nbsp;<input type='text' name='CL_NAME' onkeydown= \"if(event.keyCode==13){enterQueryCL('"+prefix+"',1,this)}\" id='"+prefix+"_proName'/>&nbsp;&nbsp;&nbsp;"+
            "材料名称:&nbsp;<input type='text' name='CL_NAME' onkeydown= \"if(event.keyCode==13){enterQueryCL('"+prefix+"',2,this)}\" id='"+prefix+"_HName'/>";
        var config3 = "书号:&nbsp;<input type='text' style=\"border:1px solid #CCCCCC;\"  onfocus=\"commMxInputFE(this);\"  onblur=\"commMxInputBE(this);\"   onkeydown= \"if(event.keyCode==13){enterQuery('"+prefix+"',0,this)}\" name='H_ISBN' id='"+prefix+"_proId'/>&nbsp;&nbsp;&nbsp; "+
        "商品名称:&nbsp;<input type='text' style=\"border:1px solid #CCCCCC;\"  name='H_NAME'onfocus=\"commMxInputFE(this);\"   onblur=\"commMxInputBE(this);\"  onkeydown= \"if(event.keyCode==13){enterQuery('"+prefix+"',2,this)}\" id='"+prefix+"_HName'/>&nbsp;&nbsp;&nbsp;";

        if(dsId == 'ds_fx_groupMaintain_item1'){
            config = config3;
        }else if(window.parent.configCheck(dsId)){
            config = config1;
        }else if(window.parent.clConfigCheck(dsId)){
            config = config2;
        }
        return config;


}
//创建是否单品多行的勾选框
function checkboxHtml(dsId,prefix){
	var configbox = "";
	if(window.parent.palycheckbox(dsId)){
		$("#"+prefix+"_checkbox").css("display","block");
	}
}
function resetHtml(dsId,prefix){
	var config = "";
	// 如果批量设置的dsid，包含本dsid
	if(window.parent.plsetCheck(dsId)){
		// 库房下拉框脚本
		var kfOption = "<select id='kfV' fixed='true' style='width:135px;margin-left:10px;'><options>";
		kfOption += "<option>"+
		""+
		"</option>";
		for(var i = 0; i < window.parent.dz_stocks.length; i++){
			kfOption += "<option value='"+window.parent.dz_stocks[i].ID+"'>"+
			window.parent.dz_stocks[i].NAME+
			"</option>";
		}
		kfOption += "</options></select>";
		// 批量设置小面板
		var resetH = 
			"<div id='"+prefix+"_resetAllDiv'  style='float:left;margin-left:10px;font-weight:bold;'>"+
			"<div onclick='setValue_all(this)' id='plReset' style='cursor: pointer;float:left;margin:3px 10px;font-weight:bold;'>批量修改" +
			"</div>"+
			"<div id='plset_div' class='plset'>" +
			"<div style='margin-top:7px;text-align:right;cursor:pointer;border-bottom:1px solid #7eabcd;'><a href='javascript:void(0);' onclick='closeSet(this)'>关闭[X]</a></div>"+
			"<div style='margin-top:3px;width:180px;'><span>库房:</span>"+kfOption+"</div>"+
			"<div style='margin-top:3px;width:180px;'><span>数量:</span><input id='slV' fixed='true' style='width:130px;margin-left:10px;' onclick='clearStyle(this)' onblur='checkPlData(this)'  ></div>"+
			"<div style='margin-top:3px;width:180px;'><span>折扣:</span><input id='zkV' fixed='true' style='width:130px;margin-left:10px;' onclick='clearStyle(this)' onblur='checkPlData(this)'  ></div>"+
			"<div style='margin-top:3px;width:180px;'><span>架号:</span><input id='jhV' fixed='true' style='width:130px;margin-left:10px;' onclick='clearStyle(this)' ></div>"+
			"<div style='margin-top:3px;'>" +
			"<input style='margin-left:10px;' type='button' fixed='true' onclick='sureSet(this,\""+prefix+"\",\"1\")' value='修改所有'>" +
			"<input style='margin-left:10px;' type='button' fixed='true' onclick='sureSet(this,\""+prefix+"\",\"2\")' value='向下填充'>" +
			"<input style='margin-left:10px;' type='button' fixed='true'  onclick='sureSet(this,\""+prefix+"\",\"3\")' value='修改选中'>" +
			"</div>"+
			"</div>"+
			"</div>";
		config = resetH;
	}
	return config;
}


function resetHtmlZC(dsId,prefix){
	var config = "";
	// 如果批量设置的dsid，包含本dsid
	if(window.parent.plsetCheck(dsId)){
		
		// 库房下拉框脚本
		var kfOption = "<select id='kfV' fixed='true' style='width:135px;margin-left:10px;'><options>";
		kfOption += "<option>"+
		""+
		"</option>";
		for(var i = 0; i < window.parent.dz_stocks.length; i++){
			kfOption += "<option value='"+window.parent.dz_stocks[i].ID+"'>"+
			window.parent.dz_stocks[i].NAME+
			"</option>";
		}
		kfOption += "</options></select>";
		
		
		// 批量设置小面板
		var resetH = 
			"<div id='"+prefix+"_resetAllDiv'  style='float:left;margin-left:10px;font-weight:bold;'>"+
			"<div onclick='setValue_all(this)' id='plReset' style='cursor: pointer;float:left;margin:3px 10px;font-weight:bold;'>批量修改" +
			"</div>"+
			"<div id='plset_div' class='plset'>" +
			"<div style='margin-top:7px;text-align:right;cursor:pointer;border-bottom:1px solid #7eabcd;'><a href='javascript:void(0);' onclick='closeSet(this)'>关闭[X]</a></div>"+
			"<div style='margin-top:3px;width:180px;'><span>库房:</span>"+kfOption+"</div>"+
			"<div style='margin-top:3px;width:180px;'><span>数量:</span><input id='slV' fixed='true' style='width:130px;margin-left:10px;' onclick='clearStyle(this)' onblur='checkPlData(this)'  ></div>"+
			"<div style='margin-top:3px;width:180px;'><span>折扣:</span><input id='zkV' fixed='true' style='width:130px;margin-left:10px;' onclick='clearStyle(this)' onblur='checkPlData(this)'  ></div>"+
			"<div style='margin-top:3px;width:180px;'><span>架号:</span><input id='jhV' fixed='true' style='width:130px;margin-left:10px;' onclick='clearStyle(this)' ></div>"+
			"<div style='margin-top:3px;'>" +
			"<input style='margin-left:10px;' type='button' fixed='true' onclick='sureSet(this,\""+prefix+"\",\"1\")' value='修改所有'>" +
			"<input style='margin-left:10px;' type='button' fixed='true' onclick='sureSet(this,\""+prefix+"\",\"2\")' value='向下填充'>" +
			"<input style='margin-left:10px;' type='button' fixed='true'  onclick='sureSet(this,\""+prefix+"\",\"3\")' value='修改选中'>" +
			"</div>"+
			"</div>"+
			"</div>";
		config = resetH;
	}
	return config;
}

/******************************
 * 清除批量设置中文本框输入错误的样式
 *****************************/
function clearStyle(obj){
	$(obj).removeClass("bred");
}

/**********************************
 * 验证批量设置中数字输入的合法性
 * @param objs
 * @return
 *********************************/
function checkPlData(objs){
	var flag="true";
	if(objs.length==undefined){
		var obj=objs;
		objs=new Array();
		objs[0]=obj;
	}
	for(var i=0;i<objs.length;i++){
		var id=$(objs[i]).attr("id");
		var tevet="";
		if(id=='slV'){      		//数量
			tevet=/^0$|^[1-9]\d{0,7}$/;
		}else if(id=='zkV'){   		//折扣
			tevet=/^(0|1)$|^(0\.)\d{1,4}$|^(\.)\d{1,4}$/;
		}
		if(tevet!=""&&$(objs[i]).val()!=null&&$(objs[i]).val()!=""&&$(objs[i]).val().match(tevet)==null){
			$(objs[i]).addClass("bred");
			flag="false";
		}
	}
	return flag;
}


/**
 * 返回批量设置字符串
 * 
 * @param flag
 * @return
 */
function sfoptions(flag){
	var kfOption = "<select id='kfV_"+flag+"' style='width:60px;margin-left:10px;'><options>";
	kfOption += "<option>"+
	""+
	"</option>";
	kfOption += "<option value='T'>是</option>";
	kfOption += "<option value='F'>否</option>";
	kfOption += "</options></select>";
	return kfOption;
}
/**
 * 批量设置不可点击
 * 
 * @param prefix
 * @return
 */
function disResDiv(prefix){
	$($('#'+prefix+'_resetAllDiv').children('div')[0]).css('color','#eee');
	$($('#'+prefix+'_resetAllDiv').children('div')[0]).removeAttr('onclick');
	$('#'+prefix+'_resetAllDiv').find('#plset_div').fadeOut();
}
/**
 * 批量设置起作用
 * 
 * @param prefix
 * @return
 */
function enaResDiv(prefix){
	$($('#'+prefix+'_resetAllDiv').children('div')[0]).css('color','black');
	$($('#'+prefix+'_resetAllDiv').children('div')[0]).attr('onclick','setValue_all(this)');
	$('#'+prefix+'_resetAllDiv').find('#plset_div').fadeOut();
}

/**
 * 批量设置 关闭弹框
 * 
 * @param obj
 * @return
 */
function closeSet(obj){
	$(obj).parent().parent().fadeOut(20);
}


/**********************************
 * 获取批量的对象
 **********************************/
function getPlsetObjs(obj){
	var objs=new Array();
	objs[0]=$(obj).find('#kfV');
	objs[1]=$(obj).find('#slV');
	objs[2]=$(obj).find('#zkV');
	objs[3]=$(obj).find('#jhV');
	return objs;
	
}

/**
 * 批量设置 显示弹框
 * 1.清空弹框所有的值
 * 2.清空弹框的红边框
 * @param obj
 * @return
 */
function setValue_all(obj){
	$(obj).next('#plset_div').css({
         top: 180,
         left: 930
     }); 
	var drObj = $(obj).next('#plset_div').fadeIn("slow");
	var dgObj=$("div[realdsid][prefix][dsid]");  //获取datagrid的div
	var dsId=$(dgObj).attr("realdsid");
	
	// 清空弹窗中所有输入框的值,样式
	var plObj=getPlsetObjs($(obj).next('#plset_div'));
	$(plObj).map(function(){
		$(this).val("");
		$(this).removeClass("bred");
		$(this).removeAttr("disabled")
	});
	
	//如果界面上要批量的字段不可编辑，那么批量是不生效的
	var hideStr=window.parent.checkNotColn(dsId);
	if(hideStr!=""){
		var hideColns=hideStr.split(";");
		for(var i=0;i<hideColns.length;i++){
			console.log($(obj).parent().parent().find('#'+hideColns[i]));
			$(obj).parent().parent().find('#'+hideColns[i]).attr("disabled","disabled");
		}
	}
	moveDiv($(obj).next('#plset_div'));
}

function moveDiv(drObj) {
    // 设置批量弹框的可拖动
    var _move = false; // 移动标记
    var _x, _y; // 鼠标离控件左上角的相对位置
    $(drObj).find("*[fixed!=true]").mousedown(function(e) {    // 鼠标按下时
    	if($(this).find("*[fixed=true]").length>0){
    	}else{
    		_move = true;
    	    _x = e.pageX - parseInt($(drObj).css("left"));
    	    _y = e.pageY - parseInt($(drObj).css("top"));
    	}
    });
    $(document).mouseup(function() {	// 用户松开鼠标时触发
        _move = false;
    });
    $(drObj).find("*[fixed!=true]").mousemove(function(e) {
    	if($(this).find("*[fixed=true]").length>0){
    	}else{
    		if(_move) {
	            var x = e.pageX - _x; // 移动时根据鼠标位置计算控件左上角的绝对位置
	            var y = e.pageY - _y;
	            $(drObj).css({
	                top: y,
	                left: x
	            }); 
	        }
    	}
    });
}



/**
 * 批量设置 确定批量
 * @param obj
 * @param prefix
 * @return
 */
function sureSet(obj,prefix,flag){    
	var dgObj=$("div[realdsid][prefix][dsid]");  // 获取datagrid的div
	var prefix=$(dgObj).attr("prefix");
	var dsId=$(dgObj).attr("realdsid");
	var zDsId=$(dgObj).attr("dsid").split(";")[0];
	var djId=$("input[vpk=T]").val();
	var pkName = eval("window.parent."+dsId+"_pk");
	var dgId=$(dgObj).attr("id");
	var kfCln = 'STOCK_ID';   // 库房(修改库房的时候要把有效库存带过来)
	var slCln = 'H_AMOUNT';   // 数量
	var zkCln = 'H_DISCOUNT'; // 折扣
	var jhCln = 'SHELF_ID'; // 架号
	var kfValue = $(obj).parent().parent().find('#kfV').val()==""?"null":$(obj).parent().parent().find('#kfV').val();   	// 库房的编码
	var kfText =  $(obj).parent().parent().find('#kfV').find("option:checked").text();                                      //要显示的库房的值
	var slValue = $(obj).parent().parent().find('#slV').val()==""?"null":$(obj).parent().parent().find('#slV').val();   	// 数量
	var zkValue = $(obj).parent().parent().find('#zkV').val()==""?"null":$(obj).parent().parent().find('#zkV').val();   	// 折扣
	var jhValue = $(obj).parent().parent().find('#jhV').val()==""?"null":$(obj).parent().parent().find('#jhV').val();  		// 架号
	var objs=new Array();
	objs[0]=$(obj).parent().parent().find('#slV');
	objs[1]=$(obj).parent().parent().find('#zkV');
	//判断批量的时候有没有空值
	// 验证批量里面的可输入的文本框输入是否正确
	if(checkPlData(objs)=='false'){
		// 可以仿照datagrid明细界面的require的提示设置
		$.messager.alert("批量操作提示","亲，你输入的批量的数值不合法，请重新输入");
		return;
	}
	var rows = $(dgObj).datagrid('getRows');
	var plObj={"STOCK_ID":kfValue,"H_AMOUNT":slValue,"H_DISCOUNT":zkValue,"SHELF_ID":jhValue};
	$(dgObj).datagrid('endAllEdit');
	if(flag == '1'){//全部
		//如果批量的数据查过50行，那么单据必须先保存然后计算
		if(rows.length>50){
			var values=getFormJsons(prefix+"_addWinForm");    // 得到主表的数据
			var changes=$(dgObj).datagrid('getChanges');   // 得到明细的数据
			if(values==0&&changes==0){
				 var plParam={"zDsId":zDsId,"dsId":dsId,"djId":djId,"pkName":pkName,"plFlag":flag,"plObj":plObj,"plRows":rows}
				 $.ajax({
					 type:'post',
					 url:_m_url+'singlePages/fxPlSet',
					 data:{"plParam":JSON.stringify(plParam)},
					 success:function(data){
						 if(data.msg == "success"){
							 $.messager.alert("提示信息","操作成功");
							 pkStr = parsePKStr(prefix+"_addWinForm");
							 endAppLoadDataM($(dgObj).attr("dsid"),prefix,pkStr);
							 $(obj).parents("div[id=plset_div]").fadeOut(20);
						 }else{
							 $.messager.alert("提示信息",data.info,"info");
						 }
					 }
				 })
			}else{
				$.messager.alert("提示信息","请先保存单据然后在执行批量操作！");
			}
		}else{
			for (var i = 0, len = rows.length; i < len; i++){
				if(kfValue!=null&&kfValue!="null" && kfValue!=''){
					rows[i][kfCln] = kfValue;
					var hidAmount = getHidAmount(rows[i].H_ID,kfValue);			// 获取有效库存
					rows[i].STOCK_AMOUNT=hidAmount; // 有效库存
					$(dgObj).datagrid('getCellObj', {"index":i,"colnName":kfCln}).text(kfText);
					$(dgObj).datagrid('getCellObj', {"index":i,"colnName":"STOCK_AMOUNT"}).text(hidAmount);
				}
				if(slValue!=null &&slValue!="null"&& slValue!=''){
					rows[i][slCln] = slValue;
					$(dgObj).datagrid('getCellObj', {"index":i,"colnName":slCln}).text(slValue);
				}
				if(zkValue!=null &&zkValue!="null" && zkValue!=''){
					rows[i][zkCln] = zkValue;
					$(dgObj).datagrid('getCellObj', {"index":i,"colnName":zkCln}).text(zkValue);
				}
				if(jhValue!=null&&jhValue!="null" && jhValue!=''){
					rows[i][jhCln] = jhValue;
					$(dgObj).datagrid('getCellObj', {"index":i,"colnName":jhCln}).text(jhValue);
				}
				commonMxRowCalcu(dgId,i);
				$(dgObj).datagrid('addChangeRow',rows[i]);
			}
			var jsparam = eval("window.parent."+zDsId+"_cfxjs"); //加载计算参数
			if(jsparam!=undefined&&jsparam!=null&&jsparam!=""){
				initMxTotalCalcu(jsparam,prefix+'_addItemDatagrid');
			}
			$("#plset_div").fadeOut(20);
			shelfByStock(kfValue,prefix);//修改库房值
			
		}
	}else if (flag == '2'){// 向下填充
		var selrows = $(dgObj).datagrid('getSelected');
		if(selrows == null){
			$.messager.alert('操作提示','没有选中行','info');
			return;
		}
		var curIndex = $(dgObj).datagrid('getRowIndex',selrows);
		var updowRows=new Array();   //向下填充所有行
		for(var i = curIndex ,len = rows.length; i < len; i++){
			updowRows.push(rows[i]);
		}
		if(updowRows.length>50){
			var values=getFormJsons(prefix+"_addWinForm");    // 得到主表的数据
			var changes=$(dgObj).datagrid('getChanges');   // 得到明细的数据
			if(values==0&&changes==0){
				 var plParam={"zDsId":zDsId,"dsId":dsId,"djId":djId,"pkName":pkName,"plFlag":flag,"plObj":plObj,"plRows":updowRows}
				 $.ajax({
					 type:'post',
					 url:_m_url+'singlePages/fxPlSet',
					 data:{"plParam":JSON.stringify(plParam)},
					 success:function(data){
						 if(data.msg == "success"){
							 $.messager.alert("提示信息","操作成功");
							 pkStr = parsePKStr(prefix+"_addWinForm");
							 endAppLoadDataM($(dgObj).attr("dsid"),prefix,pkStr);
							 $(obj).parents("div[id=plset_div]").fadeOut(20);
						 }else{
							 $.messager.alert("提示信息",data.info,"info");
						 }
					 }
				 })
			}else{
				$.messager.alert("提示信息","请先保存单据然后在执行批量操作！");
			}
		}else{
			for(var i = curIndex ,len = rows.length; i < len; i++){
				if(kfValue!=null&&kfValue!="null" && kfValue!=''){
					rows[i][kfCln] = kfValue;
					var hidAmount = getHidAmount(rows[i].H_ID,kfValue);			// 获取有效库存
					rows[i].STOCK_AMOUNT=hidAmount; // 有效库存
					$(dgObj).datagrid('getCellObj', {"index":i,"colnName":kfCln}).text(kfText);
					$(dgObj).datagrid('getCellObj', {"index":i,"colnName":"STOCK_AMOUNT"}).text(hidAmount);
				}
				if(slValue!=null &&slValue!="null"&& slValue!=''){
					rows[i][slCln] = slValue;
					$(dgObj).datagrid('getCellObj', {"index":i,"colnName":slCln}).text(slValue);
				}
				if(zkValue!=null &&zkValue!="null" && zkValue!=''){
					rows[i][zkCln] = zkValue;
					$(dgObj).datagrid('getCellObj', {"index":i,"colnName":zkCln}).text(zkValue);
				}
				if(jhValue!=null&&jhValue!="null" && jhValue!=''){
					rows[i][jhCln] = jhValue;
					$(dgObj).datagrid('getCellObj', {"index":i,"colnName":jhCln}).text(jhValue);
				}
				commonMxRowCalcu(dgId,i);
				$(dgObj).datagrid('addChangeRow',rows[i]);
			}
			var jsparam = eval("window.parent."+zDsId+"_cfxjs"); //加载计算参数
			if(jsparam!=undefined&&jsparam!=null&&jsparam!=""){
				initMxTotalCalcu(jsparam,prefix+'_addItemDatagrid');
			}
			$("#plset_div").fadeOut(20);
			
			shelfByStock(kfValue,prefix);//修改库房值
		}
	}else if (flag == '3'){// 修改选中行
		var selRows = $(dgObj).datagrid('getSelections');
		if(selRows == null || selRows.length == 0){
			$.messager.alert('操作提示','没有选中行','info');
			return;
		}
		var j = 0; 		
		for(var i = 0; i < selRows.length; i ++){
			j = $(dgObj).datagrid('getRowIndex',selRows[i]);
			if(kfValue!=null&&kfValue!="null" && kfValue!=''){
				rows[j][kfCln] = kfValue;
				var hidAmount = getHidAmount(rows[j].H_ID,kfValue);			// 获取有效库存
				rows[j].STOCK_AMOUNT=hidAmount; // 有效库存
				$(dgObj).datagrid('getCellObj', {"index":j,"colnName":kfCln}).text(kfText);
				$(dgObj).datagrid('getCellObj', {"index":j,"colnName":"STOCK_AMOUNT"}).text(hidAmount);
			}
			if(slValue!=null &&slValue!="null"&& slValue!=''){
				rows[j][slCln] = slValue;
				$(dgObj).datagrid('getCellObj', {"index":j,"colnName":slCln}).text(slValue);
			}
			if(zkValue!=null &&zkValue!="null" && zkValue!=''){
				rows[j][zkCln] = zkValue;
				$(dgObj).datagrid('getCellObj', {"index":j,"colnName":zkCln}).text(zkValue);
			}
			if(jhValue!=null&&jhValue!="null" && jhValue!=''){
				rows[j][jhCln] = jhValue;
				$(dgObj).datagrid('getCellObj', {"index":j,"colnName":jhCln}).text(jhValue);
			}
			commonMxRowCalcu(dgId,i);
			$(dgObj).datagrid('addChangeRow',rows[j]);
			
			shelfByStock(kfValue,prefix);//修改库房值
		}
		var jsparam = eval("window.parent."+zDsId+"_cfxjs"); //加载计算参数
		if(jsparam!=undefined&&jsparam!=null&&jsparam!=""){
			initMxTotalCalcu(jsparam,prefix+'_addItemDatagrid');
		}
		$("#plset_div").fadeOut(20);
		
	}
}


/**
 * 设置界面样式 批量设置 确定设置
 * 
 * @param obj
 * @param prefix
 * @return
 */
var clns = ['HIDDEN_ADD','REQUIRED_ADD','AUTO_ADD','WIDTH_ADD',
            'READONLY_ADD', 'IS_COPY','HIDDEN','ALIGN','WIDTH',
            'HIDDEN_QR','COMMON_USE'];
function clnSureSet(obj,prefix,flag){
	var dgObj = $('#'+prefix+"_addItemDatagrid");
	var clnst = new Array();
	var clnValuest = new Array();
	var clnValues = new Array();
	clnValues[0] = $(obj).parent().parent().find('#kfV_11 option:selected').val();
	clnValues[1] = $(obj).parent().parent().find('#kfV_12 option:selected').val();
	clnValues[2] = $(obj).parent().parent().find('#kfV_13 option:selected').val();
	clnValues[3] = $(obj).parent().parent().find('#kfV_14').val();
	
	clnValues[4] = $(obj).parent().parent().find('#kfV_21 option:selected').val();
	clnValues[5] = $(obj).parent().parent().find('#kfV_22 option:selected').val();
	
	clnValues[6] = $(obj).parent().parent().find('#kfV_31 option:selected').val();
	clnValues[7] = $(obj).parent().parent().find('#kfV_32 option:selected').val();
	clnValues[8] = $(obj).parent().parent().find('#kfV_33').val();
	
	clnValues[9] = $(obj).parent().parent().find('#kfV_41 option:selected').val();
	clnValues[10] = $(obj).parent().parent().find('#kfV_51 option:selected').val();
	
	var countc = 0;
	for(var i = 0; i < clnValues.length; i ++){
		if(clnValues[i]!=null && clnValues[i]!=''){
			clnst[countc] = clns[i];
			clnValuest[countc] = clnValues[i];
			countc++;
		}
	}
	
	if(flag == '1'){// 全部
		for(var i = 0 ; i < rows.length; i ++){
			$(dgObj).datagrid('endEdit',i);
			rows[i] = setValueRow(rows[i],clnst,clnValuest);
			$(dgObj).datagrid('beginEdit',i);
			$(dgObj).datagrid('endEdit',i);
		}
	}else if (flag == '2'){// 向下填充
		var selrows = $(dgObj).datagrid('getSelected');
		if(selrows == null){
			$.messager.alert('操作提示','没有选中行','info');
			return;
		}
		var curIndex = $(dgObj).datagrid('getRowIndex',selrows);
		for(var i = curIndex ; i < rows.length; i++){
			$(dgObj).datagrid('endEdit',i);
			rows[i] = setValueRow(rows[i],clnst,clnValuest);
			$(dgObj).datagrid('beginEdit',i);
			$(dgObj).datagrid('endEdit',i);
		}
	}else if (flag == '3'){// 修改选中行
		var selRows = $(dgObj).datagrid('getSelections');
		if(selRows == null || selRows.length == 0){
			$.messager.alert('操作提示','没有选中行','info');
			return;
		}
		var j = 0; 
		console.log(clnst);
		console.log(clnValuest);
		for(var i = 0; i < selRows.length; i ++){
			j = $(dgObj).datagrid('getRowIndex',selRows[i]);
			$(dgObj).datagrid('endEdit',j);
			for(var k = 0; k < clnst.length; k ++){
				selRows[i][clnst[k]] = clnValuest[k];
			}
			$(dgObj).datagrid('beginEdit',j);
			$(dgObj).datagrid('endEdit',j);
		}
	}
}

/**
 * Datastore 配置字段 设置值
 * 
 * @return
 */
function setValueRow(row,clns,clnValues){
	for(var i = 0; i < clns.length; i ++){
		row[clns[i]] = clnValues[i];
	}
	return row;
}


/**
 * 财务接口中转进货单中的汇总进货按钮
 * @param obj
 * @return
 */
function _jh_cw(obj){
	 var dsId = $(obj).attr('dsid');
	 var prefix = $(obj).attr('pre');
	 var selRows = $('#'+prefix+'_DATALIST').datagrid('getSelections');
	 if(selRows == null || selRows.length == 0){
		 $.messager.alert("提示信息","请至少选择一条数据");
		 return;
	 }
	 var dsIds = dsId.split(';');
	 var pfks = eval("window.parent."+dsIds[0]+"_pk"); // 主键
	 var dataRows=new Array();
	 for(var i = 0;i<selRows.length;i++){
		 dataRows[i] = selRows[i][pfks];
	 }
	 var buParams = {dsid:dsIds[0],ids:dataRows};
	 $.ajax({
		 type:'post',
		 url:_m_url+'butpro/zhuanHZ',
		 contentType: "application/json;charset=utf-8",
		 data:JSON.stringify(buParams),
		 dataType: "json",
		 success:function(data){
			 if(data.msg == "success"){
				 $.messager.alert("提示信息","操作成功");
			 }else{
				 $.messager.alert("提示信息",data.msg,"info");
			 }
		 }
	 })
}


/*******************************************************************************
 * 加载添加页面，详情页面，常用查询条件页面，多条件查询界面的默认值 addQrFlag：1.是添加页面的默认值
 * 2.是常用查询条件和多条件查询界面的默认值 loadDzFlag：0.没有加载下拉框的数据 1.已经加载过下拉框的数据
 * 
 ******************************************************************************/
function loadDefaultData(pdivName,dsId,addQrFlag,loadDzFlag){
	$.ajax({
		url:_m_url+'framework/defaultData',
		data:{'dsId':dsId,'addQrFlag':addQrFlag},   
		type:'post',
		async:false,
		success:function(dataRow){
			if(addQrFlag==1){     
				if(loadDzFlag==0){
					// 加载并填充下拉框的数据
					loadDzData(pdivName);
				}
				fillInfo(pdivName,dataRow[0]);
				cEfect(pdivName,1);
				//添加界面填充默认值的时候，要设置默认值的chan=T
				for(var i in dataRow[0]){
					$("#"+pdivName).find("*[qucln="+i+"][dateformat!=date][rauto=true]").attr("chan","T");
				}
			}else if(addQrFlag==2){
				for(var i=0;i<pdivName.length;i++){
					if(loadDzFlag==0){
						// 加载并填充下拉框的数据
						loadDzData(pdivName[i]);
					}
					fillInfo(pdivName[i],dataRow[0]);
					cEfect(pdivName[i],2);
				}
			}else{
				$.messger.alert("js配置提示","加载默认值的时候addQrFlag配置有误","warning");
			}
		},
		error : function() { // 请求失败后要执行的代码
			$.messager.alert("java后台报错提示","加载默认值的出现错误联系开发","info")
		}
	});
}


/*******************************************************************************
 * 加载下拉框的数据
 ******************************************************************************/
function loadDzData(pdivName){
	$.ajax({
		url:_m_url+'dz/queryDzList',   // 加载下拉框的默认值
		type:'post',
		data:{dzIds:serializeEDIType(pdivName)},
		async:false,
		success:function(data){
			// 填充下拉框
			fillSelect(pdivName,data);
		}
	});
}

/*******************************************************************************
 * 导入excel
 ******************************************************************************/
function loadDataExc(dsId,flag){
	var cid="";
	if(dsId=="ds_fx_jh1"&&flag=="sdd"){   //客户添货 
		cid =$('#'+flag+'_addWinTable input[qucln=C_ID]').val();
		if(cid == null || cid==""){
			$.messager.alert("提示信息","请选择客户!");
			return;
		}
	}else if(dsId=="ds_fx_jh1" &&flag=='cbp'){    //其他出库
		cid ="";
	}else if(dsId=="ds_fx_jh1" &&flag=='cbn'){    //其他入库
		cid ="";
	}
	
	if($('#IMP_EXC_WIN').length>0){
		$('#IMP_EXC_PARENT_PANEL').window('open');
		var obj = document.getElementById("IMP_EXC_WIN");
		document.body.removeChild(obj);
	}
	var div_box = document.createElement("DIV");
	div_box.id = "IMP_EXC_WIN";
	div_box.height = 100;               
	document.body.appendChild(div_box);
//	if(flag == "cbc"){
//		$('#IMP_EXC_WIN').load(_m_url+'singlePages/xsthinprort',{'dsId':dsId,'flag':flag},
//				function(){
//				    $("#download").attr("href",_m_url+"singlePages/dow?fileName="+flag+".xlsx");   
//					$.parser.parse('#IMP_EXC_DG_PANEL');
//					$('#IMP_EXC_PARENT_PANEL').window({  
//						width:document.documentElement.clientWidth,  
//						height:document.documentElement.clientHeight,  
//						draggable:false,
//						top: 0,
//						left: 0,
//						modal:true,
//						resizable:false,
//						closable:false,
//						collapsible:false,
//						maximizable:false,
//						minimizable:false
//					});  
//				});
//	}else {
	var dsid = $('#'+flag+'_SAVE_BUT').attr('dsid');
	var keys = $('#'+flag+'_addWinTable input[qucln]');
	var kvs = "";
	for(var i=0;i<keys.length; i++){
		if($(keys[i]).attr('qucln').indexOf("ID")!= -1 || $(keys[i]).attr('qucln').indexOf("MAN")!= -1 || $(keys[i]).attr('qucln').indexOf("CODE")!= -1){
			if($(keys[i]).attr('value')){
				kvs += "`"+$(keys[i]).attr('qucln')+"`"+":"+"`"+ $(keys[i]).attr('value')+"`"+",";
			}
		}
	}
	var width = document.documentElement.clientWidth;
	var height = document.documentElement.clientHeight;
		$('#IMP_EXC_WIN').load(_m_url+'singlePages/pageToImport',{'dsId':dsId,'flag':flag,'kvs':kvs,'dsid':dsid},
				function(){
				    $("#download").attr("href",_m_url+"singlePages/dow?fileName="+flag+".xlsx");   
					$.parser.parse('#IMP_EXC_DG_PANEL');
					$('#IMP_EXC_PARENT_PANEL').window({  
						width:650,  
						height:450,  
						draggable:true,
						top: (height-450)*0.5,
						left: (width-650)*0.5,
						modal:true,
						resizable:false,
						closable:false,
						collapsible:false,
						maximizable:false,
						minimizable:false
					});  
				});
//	}
	
}
/***************************************************************
 * 查询列表页的导入Excel:将选中的Excel传入到后台并做相关分析,反馈生成的单据结果 
 * @param dsId
 * @param flag
 * @return 
 **************************************************************/
function impExcelToDj(dsId,flag){
	var win=$('#IMP_EXC_WIN_'+flag);
	var keys=flag+'/'+dsId;
	if(win.length>0){
		$('#IMP_EXC_PARENT_PANEL_'+flag).window('open');//第一次open后,这里面的内容 在本div中已经不存在了
	}
	else{
		var str='<div id="'+'IMP_EXC_WIN_'+flag+'">'+
		'<div id="IMP_EXC_DG_PANEL_'+flag+'" >'+
			'<div id="IMP_EXC_PARENT_PANEL_'+flag+'" title="批量导入" style="overflow-x:hidden;">'+
			'</div>'+
		'</div>'+
		'</div>';
		var jq=$(str).appendTo($(document.body));//加入到body中
		var jqwin=jq.find('#IMP_EXC_PARENT_PANEL_'+flag);//格式化window
		$('<form action="importExcel" id="froms" method="post" encType="multipart/form-data"'+ 
				'target="hidden_framew" style="padding-top:15px;padding-left:15px;" >'+
				'<input id="file_'+flag+'" type="file" name="file">'+
				'<a class="easyui-linkbutton" id="importexcel">导入</a>'+
			    '<a class="easyui-linkbutton" id="close">关闭</a>'+
		  '</form>').appendTo(jqwin);//加上按钮和上传控件,注意 input file 一定要有：type="file" name="file",缺一个都会上传不了,插件原因
		$('<textarea id="impmsg" style="margin-top:10px;margin-left:2px;margin-right:2px;resize:none" />')
		.appendTo(jqwin)
		.width(628)
		.height(353)
		;//加上消息textarea
		jQuery.getScript(window.parent._index_path+"/js/ajaxfileupload.js");//加载ajaxfileupload文件
		jqwin.find('#close').click(function(){
			jqwin.find("#file_"+flag).val('');
			jqwin.find("#impmsg").val('');
			jqwin.window('close');
		});
		//导入功能
		jqwin.find('#importexcel').click(function(){
			var file=jqwin.find("#file_"+flag);
			if(file==undefined)return;
			var filename=file.val();
			if(filename==''||filename ==null){
				$.messager.alert('温馨提示:','请选择文件!');
				return;
			}
			if(filename.toLowerCase().indexOf(".xls")<0){
				$.messager.alert('温馨提示:','导入文件必须为Excel文件');
				return;
			}
			var mask_kk=$("<div id='mask_kk' class=\"datagrid-mask\" style='z-index:99999;'></div>")
			 .css({ display: "block", width: "100%", height: $(window).height() })
			 .appendTo("body");  
			var mask_kkk=$("<div id='mask_kkk' class=\"datagrid-mask-msg\" style='z-index:100000;'></div>")
		     .html("分析Excel数据中,请稍候...")
		     .appendTo("body")
		     .css({ display: "block", left: ($(document.body).outerWidth(true) - 190) / 2, top: ($(window).height() - 45) / 2 });
			$.ajaxFileUpload({
				url: '../..'+window.parent._index_path+'singlePages/importExcel?keys='+keys, //用于文件上传的服务器端请求地址
				secureuri: false, //是否需要安全协议，一般设置为false
				type:'post',
				fileElementId: 'file_'+flag, //文件上传域的ID
				dataType: 'json', //返回值类型 一般设置为json
				success:function(data){
					var out;
					try{
				    	out=eval('('+data.json+')');
				    }catch(e){
				    	if(data.json!=undefined){
				    		out={msg:data.json};
				    	}else{
				    		out={msg:'Excel数据分析出错！'};
				    	}
				    }
				    jqwin.find("#impmsg").val(out.msg);
				    jqwin.find("#file_"+flag).val('');
					// 去掉蒙板
			        mask_kkk.remove();  
			        mask_kk.remove(); 
				},
				error:function(){
					// 去掉蒙板
			        mask_kkk.remove();  
			        mask_kk.remove(); 
				}
			});
		});
		
		$.parser.parse('#IMP_EXC_PARENT_PANEL_'+flag);//格式化成 easyui的控件
		var width = document.documentElement.clientWidth;
		var height = document.documentElement.clientHeight;
		jqwin.window({  
			width:650,  
			height:450,  
			draggable:true,
			top: (height-450)*0.5,
			left: (width-650)*0.5,
			modal:true,
			resizable:false,
			closable:false,
			collapsible:false,
			maximizable:false,
			minimizable:false
		});  
		jqwin.window('open');
	}//结束首次初始化事件
}


/**
 * 通用导入页面(商品)
 * @param dsId
 * @param flag
 * @return
 */
function loadDataExcInfo(dsId,flag,hdFunc,tdsId,thdFunc){
	if($('#IMP_EXC_WIN').length>0){
		$('#IMP_EXC_PARENT_PANEL').window('close');
		var obj = document.getElementById("IMP_EXC_WIN");
		$('#IMP_EXC_PARENT_PANEL').remove();
		document.body.removeChild(obj);
	}
	var div_box = document.createElement("DIV");
	div_box.id = "IMP_EXC_WIN";
	div_box.height = 100;
	document.body.appendChild(div_box);
	
	$("#IMP_EXC_WIN").attr("tdsId",tdsId); //第二个弹窗中的加载列的DSID
	$("#IMP_EXC_WIN").attr("thdFunc",thdFunc); //第二个弹窗中的双击要调用的方法
	$('#IMP_EXC_WIN').load(_m_url+'model/improeExcelInfo/imprortExcel.jsp',
	function(){
		$.parser.parse('#IMP_EXC_DG_PANEL');
		$('#IMP_EXC_PARENT_PANEL').window({  
			width:750,  
			height:450,  
			draggable:true,
			top:100,
			left:200,
			modal:true,
			resizable:false,
			closable:false,
			collapsible:false,
			maximizable:false,
			minimizable:false
		}); 
		 $("#importexcel").attr("dsid",dsId);
		 $("#download").attr("href","/publishUI/singlePages/dow?fileName="+flag+".xlsx");
		 //设置按钮flag
	    $("#affirmbtn").attr("onclick","saveMateSuccessInfo('"+flag+"')");  
		$.ajax({
			type:'post',
			url:_m_url+'framework/loadColumnsU',
			data:{'colId':dsId,'type':4},
			success:function(data){
				$('#IMP_EXC_DATALIST').datagrid({
					iconCls:'icon-save',
					height:document.documentElement.clientHeight-125 ,
					width:document.documentElement.clientWidth - 20,
					minHeight:450,
					minWidth:1180,
					striped: true,		
					collapsible:true,
					autoRowHeight: false,		
					sortOrder: 'desc',
					remoteSort: false,
					fixed:true,
					columns:jointDGColumn(data[0]).columns,
			        rowStyler: function(index,row){
						if (row.IS_PP==0){
							return 'background-color:#bbddf5;';
						}
					},
					singleSelect:true,
					onSelect:function(rowIndex,rowData){
						
					},
					//双击执行效果
					onDblClickRow: function(index,field,value){
						var selected = $("#IMP_EXC_DATALIST").datagrid("getSelected");
						if(hdFunc != null && hdFunc != ''){
							eval(hdFunc).call(this,selected);
						}
					}
				}); 
			}
		});
	});				
}
//商品导入的回调函数
function prodExcelFunc(dataRow){
	if(dataRow.IS_PP.trim()=="0"){
	  	var div_box = document.createElement("DIV");
	  	div_box.id = "IMP_MATA_WIN";
	  	div_box.height = 100;
	  	document.body.appendChild(div_box);
	  	hisbn=dataRow.H_ISBN;
	  	$.ajax({
	  		url: _m_url+"singlePages/mataOrder",
			data:{'hisbn':hisbn},
			success: function(data){
			  $('#manage_ap').window("open");
			  $("#IMP_MATA_DATALIST").datagrid('loadData', data); 
			}
		});
	}
}
//获取系统时间的方法
function getSysDate(){
	var dateStr = '';
	$.ajax({
		type:'post',
		url:_m_url+'framework/returnDateStr',
		async:false,
		success:function(data){
			dateStr = data;
		}
	})
	return dateStr;
}



//单录单中隐藏上一条下一条的div方法
function _p_qcsx(data,dsId,prefix,keyValues){
//	$('#'+prefix+'_totalNum').hide();
	$('#'+prefix+'_totalNum').css("visibility","hidden");
}


/***
 * 通用的超链接的事件（返回按钮隐藏，单据锁定）
 * @param divName
 * @param rowIndex
 * @param field
 * @param value
 * @return
 */
function commonAHrefEvent(divName,rowIndex,colnName, value){
	var realdsid=$("#"+divName).attr("realdsid");
	var dsId="";
	if(colnName=='XT_ID'||colnName=='H_ID'){   //商品
		dsId='ds_bs_product1';
	}else if(colnName=='CLIENT_ID'||colnName=='C_ID'){    		// 客户
		dsId='ds_bs_clients1';
	}else if(realdsid=='ds_fx_cfymx_analysis'&&colnName=='FY_ID'){    		// 客户费用单号
		dsId='ds_fx_fy_clients1';
	}else if(realdsid=='ds_fx_chargemx_analysis'&& colnName=='CH_ID'){    		// 收款核销单号
		dsId='ds_fx_charge1;ds_fx_charge_item1';
	}else if(realdsid=='ds_fx_hand_out1'&& colnName=='SOURCE_CODE'){    		// 待发货区
		var preVal=value.substr(0,2);
		if(preVal=='FF'){
			dsId='ds_fx_ff_clients2;ds_fx_ff_clients_item2';
		}else if(preVal=='ZD'){
			dsId='ds_fx_zd2;ds_fx_zd_item2';
		}
	}else if((realdsid=='ds_xsxt_mx_analysis'||realdsid=='ds_xsxt_zk_analysis') && colnName=='PX_CODE'){    		// 销售统计明细报表
		var preVal=value.substr(0,2);
		if(preVal=='XT'){
			dsId='ds_fx_xs1;ds_fx_xs_item1';
		}else if(preVal=='XS'){
			dsId='ds_fx_xs2;ds_fx_xs_item2';
		}
	}else if(realdsid=='ds_fx_ordermx_analysis'&& colnName=="FFC_CODE"){
	}else if(realdsid=='ds_bs_mexpense1' && colnName=='LY_CODE'){    		// 应付费用单
        var preVal=value.substr(0,2);
        if(preVal=='BX'){
            dsId='ds_bx_expensesClaim1;ds_bx_expensesClaim_item1';
        }else if(preVal=='CB'){
            dsId='ds_cw_indicator1;ds_cw_indicator_item1';
        }
    }else{
		$.messager.alert("超链接点击报错","该字段不在超链接的范畴内,点击事件不生效","info");
		return;
	}
	$.ajax({
		type:'post',
		url:_m_url+'bjFlow/returnAHreData',  // 得到flowNode数据的路径
		data:{'dsid':dsId,'realdsid':realdsid,'djid':value,"colnName":colnName},  
		success:function(data){
			var errorMsg=data.errorMsg;
			if(errorMsg=='no'){
				console.log("超链接失效");
				return;
			}else if(errorMsg!=""&&errorMsg!=null&&errorMsg!="null"){
				var index=errorMsg.indexOf("error:");
				var tsInfo=errorMsg.substring(index+6,errorMsg.length);
				$.messager.alert("提示",tsInfo,"info");
				return;
			}
			// 得到一系列的参数
			var choice="0";
			var store = data.dataStore;
			var funcId=data.funcId;
			var flag ='2';  		// 代表是修改窗口
			var keyValues =data.msg;
			var smoro = store.smoro; // 判断单据
			var dsId = data.dsId;
			var urlJs = store.urlJs;
			var ainitFunc=data.ainitFunc;	//列表界面的回调函数
			var winitFunc=data.winitFunc;	//添加和详情页面的回调函数
			var panelTitle = store.panelTitle;
			var staticWebUrl = store.staticWebUrl;
			var prefix = store.prefix;
			var items = store.items; // 明细表个数
			var wainitFunc ='_p_qcsx';
			if(smoro == '0' || smoro ==null){  // 单录单
				addPTabT(panelTitle,_m_url+'singlePages/squeryFun?dsId='+dsId+'&type=4;3;6&staticWebUrl=&initFunc=&ainitFunc='+ainitFunc+'&winitFunc='+winitFunc+'&wainitFunc='+wainitFunc+'&aoru='+flag+'&keyValues='+keyValues+'&flag=1&choice=1','',prefix,'backFun',keyValues,dsId,flag,winitFunc,funcId);
			}else if(smoro == '1'){ // 主明细
				addPTabT(panelTitle,_m_url+'singlePages/mqueryFun?dsId='+dsId+'&type=4;3;6&staticWebUrl=&initFunc=&ainitFunc='+ainitFunc+'&winitFunc='+winitFunc+'&wainitFunc='+wainitFunc+'&flag=1&aoru='+flag+'&choice=1&keyValues='+keyValues+'&moro=0','',prefix,'backFunM',keyValues,dsId,flag,winitFunc,funcId);
			}else if(smoro == '2'){ // 一对多
				addPTabT(panelTitle,_m_url+'singlePages/oqueryFun?dsId='+dsId+'&type=4;3&staticWebUrl=&initFunc=&ainitFunc='+ainitFunc+'&jspWebUrl=/model/onetoM/oquery&flag=1&aoru='+flag+'&choice=1&items='+items+'&keyValues='+keyValues,'',prefix,'backFunO',keyValues,dsId,flag,items,funcId);
			}else if(smoro == '3'){ //主明细上下结构
				addPTabT(panelTitle,_m_url+'singlePages/mqueryFun?dsId='+dsId+'&type=4;3;6&staticWebUrl=&initFunc=&ainitFunc='+ainitFunc+'&winitFunc='+winitFunc+'&wainitFunc='+wainitFunc+'&flag=1&aoru='+flag+'&choice=1&keyValues='+keyValues+'&moro=2','',prefix,'backFunMt',keyValues,dsId,flag,winitFunc,funcId);
			}else if(smoro == '4'){//成本核算单的特殊情况
				addPTabT(panelTitle,_m_url+'singlePages/mqueryFun?dsId='+dsId+'&type=4;3;6&staticWebUrl=&initFunc=cbhsDoubClick&ainitFunc=_zmx_butns&winitFunc=_all_cbhiddenM&wainitFunc='+wainitFunc+'&flag=1&aoru='+flag+'&choice=1&keyValues='+keyValues+'&moro=3','',prefix,'backFunMt',keyValues,dsId,flag,'_all_cbhiddenM',funcId);
			}
			
		}
	});
}


/************************************************************
 *  通用导出excel(打印内容数据导出成excel)
 */
function common_excelAinfo(obj){
	var prefix=$(obj).attr("pre");
	var sflag=$(obj).attr("sflag");
	var flag=$(obj).attr("flag");
	var dsId=$(obj).attr("dsId");
	var tit=$(obj).attr("tit");
	var name=$(obj).attr("code").split('-')[0];
	var config=$(obj).attr("config");
	var keyVaules='';   // 保存主键和主键值
	var staticWebUrl='';
	var initFunc='';
	var ainitFunc='';
	var doubFunc='';
	var dsIds = dsId.split(';');
	var pfks = eval("window.parent."+dsIds[0]+"_pk"); // 主键
	var pkVal="";
	if(sflag =="s"){
		keyVaules = parsePKStr(prefix+"_A_AFORM"); 
		pkVal = $('#'+prefix+"_A_AFORM input[qucln = "+pfks+"]").val();  
	}else if(sflag == 'm'){
		keyVaules = parsePKStr(prefix+"_addWinForm");
		pkVal = $('#'+prefix+"_addWinForm input[qucln = "+pfks+"]").val();
	}else if(sflag == 'o'){
		keyVaules = parsePKStr(prefix+"_maddPEForm");
		pkVal = $('#'+prefix+"_maddPEForm input[qucln = "+pfks+"]").val();
	}
	if(pkVal ==null || pkVal == ""){
		$.messager.alert("提示","单据尚未保存，不需要打印！");
		return;
	}
	if(config==null||config=='undefined'){
		config="";
	}
	if(doubFunc != "" ){
		eval(doubFunc).call(this,selectRow);
	}else{
		if(sflag=='s' || sflag=='m'){// 单录单
			if(sflag=='m'){
				dsId =dsId.split(";")[0];
			}
			  //var LODOP = getLodop();
			  //if(LODOP == null || LODOP == undefined || LODOP.VERSION == null || LODOP.VERSION == undefined){
				//  $.messager.alert("提示","打印插件未安装,请关闭所有浏览器,安装插件后重试!");
				//
			  //}
			 //LODOP.PRINT_INIT("导出excel");
			 //var va =  LODOP.GET_VALUE('PRINTED_TIMES',0);
			 //LODOP.SET_SHOW_MODE("NP_NO_RESULT",true);
			 if(dsId=="ds_fx_xs2"){
				 location.href=_m_url+"printPages/jxlfords_fx_xs2?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';
             }else if(dsId=="ds_fx_clients_jslist1"&&(name=="cjs_b"||name=="cjs_a")){
				 location.href=_m_url+"printPages/jxlfords_fx_clients_jslist1?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';
             }else if(dsId=="ds_fx_clients_jslist1"&&name=="cjs_c"){
				 location.href=_m_url+"printPages/jxlfords_fx_clients_jslist1tofzq?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';
             }else if(dsId=="ds_fx_charge1"){
				 location.href=_m_url+"printPages/jxlfords_fx_charge1?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes'; 
             }else if(dsId=="ds_fx_stocks_db1"){
				 location.href=_m_url+"printPages/jxlfords_fx_stocks_db1?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes'; 
             }else if(dsId=="ds_fx_os_ck1"){
				 location.href=_m_url+"printPages/jxlfords_fx_os_ck1?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';             
             }else if(dsId=="ds_fx_os_ck2"){
				 location.href=_m_url+"printPages/jxlfords_fx_os_ck2?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';             
             }else if(dsId=="ds_fx_os_rk1"){
				 location.href=_m_url+"printPages/jxlfords_fx_os_rk1?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';             
             }else if(dsId=="ds_fx_xs1"){
				 location.href=_m_url+"printPages/jxlfords_fx_xs1?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';             
             }else if(dsId=="ds_fx_zd1"){
				 location.href=_m_url+"printPages/jxlfords_fx_zd1?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';             
             }else if(dsId=="ds_fx_jh1"){
				 location.href=_m_url+"printPages/jxlfords_fx_jh1?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';             
             }else if(dsId=="ds_fx_invoice_kp1"){
				 location.href=_m_url+"printPages/jxlfords_fx_invoice_kp1?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';             
             }else if(dsId=="ds_bj_fkd1"){
				 location.href=_m_url+"printPages/jxlfords_bj_fkd1?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';             
             }else if(dsId=="ds_bj_jkd1"){
				 location.href=_m_url+"printPages/jxlfords_bj_jkd1?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';             
             }else if(dsId=="ds_cw_MonthSX1"){
				 location.href=_m_url+"printPages/jxlfords_cw_MonthSX1?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';             
             }else if(dsId=="ds_cw_clreconcid1"){
				 location.href=_m_url+"printPages/jxlfords_cw_clreconcid1?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';
             }else if(dsId=="ds_cw_press1"){
                 location.href=_m_url+"printPages/jxlfords_cw_press1?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';
             }else if(dsId=="ds_cw_reviewFee1"){
                 location.href=_m_url+"printPages/jxlfords_cw_reviewFee1?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';

             }else if(dsId=="ds_zc_authorcheck1"){
                 location.href=_m_url+"printPages/jxlfords_zc_authorcheck1?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';


             }else if(dsId=="ds_bx_marketbudget1"){
                 location.href=_m_url+"printPages/jxlfords_bx_marketbudget1?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';

             }else if(dsId=="ds_fx_MonthSX1"){
                 location.href=_m_url+"printPages/jxlfords_fx_MonthSX1?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';


             }else{
			 $.ajax({
					type:"post",
					url:_m_url+"printPages/CommonPrint?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,
					data:{},
					async:false,
					success:function(data){
						console.log("打印数据导出excel");
						console.log(data);
						// LODOP.SET_PRINT_MODE('PRINT_PAGE_PERCENT',"Auto-Width");
						// // 设置默认打印机
						//var b = LODOP.SET_PRINT_MODE("WINDOW_DEFPRINTER","Foxit Reader PDF Printer");
					     //// var b1=
						// // LODOP.SET_PRINT_MODE("WINDOW_DEFPAGESIZE:-1","A3");
						// LODOP.ADD_PRINT_TABLE(5,10,"98%","98%",data);
						// // 直接打印或预览打印
						// // LODOP.PREVIEW();
						//    LODOP.SET_SAVE_MODE("PAGE_TYPE",0);
						//	LODOP.SET_SAVE_MODE("CenterHeader","页眉"); //Excel文件的页面设置
						//	LODOP.SET_SAVE_MODE("CenterFooter","第&P页"); //Excel文件的页面设置
						//	LODOP.SET_SAVE_MODE("Caption","我的标题栏");//Excel文件的页面设置
						//	LODOP.SET_SAVE_MODE("RETURN_FILE_NAME",1);
						//	LODOP.SAVE_TO_FILE(tit+".xlsx");
						 
					}
				});
             }
			// window.open(_m_url+"printPages/CommonPrint?pkVal="+keyVaules.split("-")[1]+"&dsId="+dsId+"&name="+name+"&config="+config+"&sflag="+sflag,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes');
		}else{
			alert("该界面属于特殊界面,没有开发打印功能");
		}
	}
}
/****
 * 光标定位
 * @return
 */
function dataList_focus(divId){
	var alllRows=$("#"+divId).datagrid("getRows");
	if(alllRows.length>0){
		$("#"+divId).datagrid('beginEdit', 0);
		var ed =$("#"+divId).datagrid('getEditor', {index:0,field:"H_AMOUNT"});
		if(ed!=null&&ed!=undefined){
			$("#"+divId).datagrid('selectRow',0);
			$($("#"+divId).datagrid("getEditor",{index:0,field:"H_AMOUNT"}).target[0]).parent("td").find("#editablebox").focus();
		}
	}
}


//勾选导出
function commdcexcelforselect(obj){
    var prefix="xsm";
    var selRows = $('#'+prefix+'_DATALIST').datagrid('getSelections');
    if(selRows.length==0){
    	 $.messager.alert("提示","请选择数据！");
    	 return;
    } 
    var dsId="ds_xsxt_mx_analysis";
    	 $.ajax({
				type:"post",
				url:_m_url+"printPages/gxdcadd",
				data:{"pkVal":JSON.stringify(selRows)},
				async:false,
				success:function(data){

			    	 location.href=_m_url+"printPages/gxdc?dsId="+dsId,'newwindow','fullscreen=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=no, status=yes';	 
		 
				}
			});

}
/*
 * 客户资料中客户名称的判断是否有重复
 * */
function custInfoSave(obj){
    //$("#"+prefix+"_S_UBUTN a[code="+prefix+"_issave]").attr('sou','2');
    var NAME = $('#cab_A_ADATAL input[qucln=CLIENTS_NAME]').val();
    var CC_ID = $('#cab_A_ADATAL input[qucln=CC_ID]').val();
    var CLIENTS_ID = $('#cab_A_ADATAL input[qucln=CLIENTS_ID]').val();
    if(CLIENTS_ID==null||CLIENTS_ID==""){
        $(obj).attr('sou','1');
        common_save(obj);  // 确认按钮调用保存事件
    }else{
        $(obj).attr('sou','2');
        $.ajax({
            type:'post',
            url:_m_url+'singlePages/sureSaveisnull',
            async:false ,
            data:{'NAME':NAME,'ccid':CC_ID},
            success:function(bool){
                if(bool>0){
                    //$.messager.show({title:"保存提示",msg:"亲，已存在同样的客户名称及行业分类的客户，无需保存!",showType:'slide',timeout: 1000,showSpeed:400});
                    //return;
                    $.messager.alert("保存提示","亲，已存在同样的客户名称及行业分类的客户，无需保存！");
                }else{
                    $(obj).attr('sou','2');
                    common_save(obj);  // 确认按钮调用保存事件
                }
            }
        });
    }
}

/*
 * 财务的预估入库成本单中查询商品名称是否有重复的
 * */
function cwygrkSave(obj){
    var H_ID = $('#ygr_A_ADATAL input[qucln=H_ID]').val();
    var YGR_ID = $('#ygr_A_ADATAL input[qucln=YGR_ID]').val();
    if(YGR_ID==null||YGR_ID==""){
        $.ajax({
            type:'post',
            url:_m_url+'singlePages/cwygrkSaveisnull',
            async:false ,
            data:{'H_ID':H_ID,'YGR_ID':YGR_ID},
            success:function(bool){
                if(bool>0){
                    $.messager.alert("保存提示","亲，已存在同样的商品名称，无需保存！");
                }else{
                    $(obj).attr('sou','1');
                    common_save(obj);  // 确认按钮调用保存事件
                }
            }
        });
    }else{
        $(obj).attr('sou','2');
        $.ajax({
            type:'post',
            url:_m_url+'singlePages/cwygrkSaveisnull',
            async:false ,
            data:{'H_ID':H_ID,'YGR_ID':YGR_ID},
            success:function(bool){
                if(bool>0){
                    $.messager.alert("保存提示","亲，已存在同样的商品名称，无需保存！");
                }else{
                    $(obj).attr('sou','2');
                    common_save(obj);  // 确认按钮调用保存事件
                }
            }
        });
    }
}

/*
 * 精确安全除法
 * @param num1
 * @param num2
 * @return {Number}
 */
function g_math_div(num1, num2) {
    var t1 = 0,
        t2 = 0,
        r1, r2;
    num1 = num1 + "";
    num2 = num2 + "";
    try {
        try{
            t1 = num1.split(".")[1].length;
        }catch (e1){
            t1 = 0;
        }
        try{
            t2 = num2.split(".")[1].length;
        }catch (e1){
            t2 = 0;
        }
        with(Math) {
            r1 = Number(num1.replace(".", ""));
            r2 = Number(num2.replace(".", ""));
            return this.g_math_mul((r1 / r2),pow(10, t2 - t1));
        }
    } catch (e) {}
    return 0;
}
/*
 * 精确安全乘法
 * @param num1
 * @param num2
 * @return {number}
 */
function g_math_mul(num1, num2) {
    var m = 0,s1 = num1 + "",s2 = num2 + "";
    try {
        try{
            m += s1.split(".")[1].length;
            m += s2.split(".")[1].length;
        }catch (e1){
            m = 0;
        }
        return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
    } catch (e) {}
    return 0;
}
/*
 * 精确安全加法
 * @param num1
 * @param num2
 * @return {number}
 */
function g_math_add(num1, num2) {
    var r1, r2, m;
    try {
        try{
            r1 = (num1 + "").split(".")[1].length;
        }catch (e1){
            r1 = 0;
        }
        try{
            r2 = (num2 + "").split(".")[1].length;
        }catch (e1){
            r2 = 0;
        }
        m = Math.pow(10, Math.max(r1, r2));
        return (num1 * m + num2 * m) / m;
    } catch (e) {
    }
    return 0;
}
/**
 * 精确安全减法
 * @param {number}num1
 * @param {number}num2
 * @return
 */
function g_math_sub(num1, num2) {
    var r1, r2, m, n;
    try {
        try{
            r1 = (num1 + "").split(".")[1].length;
        }catch (e1){
            r1 = 0;
        }
        try{
            r2 = (num2 + "").split(".")[1].length;
        }catch (e1){
            r2 = 0;
        }
        m = Math.pow(10, Math.max(r1, r2));
        //动态控制精度长度
        n = (r1 >= r2) ? r1 : r2;
        return ((num1 * m - num2 * m) / m).toFixed(n);
    } catch (e) {
    }
    return 0;
}

